VBuffer<T> Структура

Определение

Буфер, поддерживающий как плотные, так и разреженные представления. Это тип представления для всех VectorDataViewType экземпляров. Явно определенные значения этого вектора предоставляются через GetValues() и , если не плотные, GetIndices().

public readonly struct VBuffer<T> : System.Collections.IEnumerable
public readonly struct VBuffer<T>
type VBuffer<'T> = struct
    interface IEnumerable
type VBuffer<'T> = struct
Public Structure VBuffer(Of T)
Implements IEnumerable
Public Structure VBuffer(Of T)

Параметры типа

T

Тип вектора. Нет ограничений времени компиляции на то, что это может быть, но этот код и практически весь используемый код VBuffer<T> делает предположение, что присвоения значения достаточно, чтобы сделать его полностью независимую копию. Например, это означает, что буфер буферов невозможен. Но такие вещи, как Int32, Singleи ReadOnlyMemory<T>, полностью в порядке.

Наследование
VBuffer<T>
Реализации

Комментарии

Эта структура сама по себе неизменяема, но для включения редактирования буфера, включая повторное использование внутренних буферов, доступ к изменяемому варианту VBufferEditor<T> можно получить через VBuffer<T>.

В коде мы делаем предположение, что разреженный VBuffer<T> фрагмент логически эквивалентен плотному VBuffer<T> со значением по умолчанию для T заполнения значений по умолчанию.

Конструкторы

VBuffer<T>(Int32, Int32, T[], Int32[])

Создайте возможное разреженное представление вектора.

VBuffer<T>(Int32, T[], Int32[])

Создайте плотное представление. Массив indices часто не указан, но если он указан, его следует считать буфером, в котором он может быть использован.

Поля

Length

Логическая длина буфера.

Свойства

IsDense

Возвращает значение, указывающее, представлен ли каждый логический элемент явным образом в буфере.

Методы

Copy(T[], Int32, VBuffer<T>, Int32)

Копирование из раздела исходного массива в заданное место назначения.

CopyTo(Span<T>)

Скопируйте из этого буфера в заданный целевой диапазон. Это "уплотняет".

CopyTo(Span<T>, Int32, T)

Скопируйте из этого буфера в заданный диапазон назначения, начиная с указанного индекса. Это "уплотняет".

CopyTo(VBuffer<T>)

Скопируйте из этого буфера в заданное место назначения.

CopyTo(VBuffer<T>, Int32, Int32)

Скопируйте диапазон значений из этого буфера в заданное место назначения.

CopyToDense(VBuffer<T>)

Скопируйте из этого буфера в заданное место назначения, принудительно создав плотное представление.

DenseValues()

Возвращает перечисляемый объект с Length элементами, представляющими значения.

GetEnumerator()

Возвращает перечислитель, который выполняет итерацию значений в VBuffer.

GetIndices()

Индексы. Для плотного представления этот массив не используется и возвращает "пустой" диапазон по умолчанию. Для разреженного представления оно параллельно тому, которое возвращается из GetValues() , и задает логические индексы для соответствующих значений в порядке увеличения в диапазоне от 0 включительно до Length исключающего значения, соответствующего всем явно определенным значениям. Все значения в неопределенных индексах должны рассматриваться как неявно определенные со значением Tпо умолчанию .

GetItemOrDefault(Int32)

Вариант GetItemOrDefault(Int32, T) , который возвращает значение, а не передает его обратно с помощью ссылочного параметра.

GetItemOrDefault(Int32, T)

Возвращает элемент, хранящийся в этой структуре. В случае с плотным вектором это простой поиск. В случае разреженного вектора он попытается найти запись с этим индексом и присвоить destination ему хранимое значение или, если такое значение не найдено, назначьте ему значение по умолчанию.

GetValues()

Явно представленные значения. При этом IsDenseLength значение возвращаемого значения будет равно Length, а в противном случае будет иметь длину меньше Length.

Items(Boolean)

Возвращает совместный список всех пар "индекс-значение".

ToString()

Буфер, поддерживающий как плотные, так и разреженные представления. Это тип представления для всех VectorDataViewType экземпляров. Явно определенные значения этого вектора предоставляются через GetValues() и , если не плотные, GetIndices().

Применяется к