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[]) |
Создайте плотное представление. Массив |
Поля
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 исключающего значения, соответствующего всем явно определенным значениям. Все значения в неопределенных индексах должны рассматриваться как неявно определенные со значением |
GetItemOrDefault(Int32) |
Вариант GetItemOrDefault(Int32, T) , который возвращает значение, а не передает его обратно с помощью ссылочного параметра. |
GetItemOrDefault(Int32, T) |
Возвращает элемент, хранящийся в этой структуре. В случае с плотным вектором это простой поиск.
В случае разреженного вектора он попытается найти запись с этим индексом и присвоить |
GetValues() |
Явно представленные значения. При этом IsDenseLength значение возвращаемого значения будет равно Length, а в противном случае будет иметь длину меньше Length. |
Items(Boolean) |
Возвращает совместный список всех пар "индекс-значение". |
ToString() |
Буфер, поддерживающий как плотные, так и разреженные представления. Это тип представления для всех VectorDataViewType экземпляров. Явно определенные значения этого вектора предоставляются через GetValues() и , если не плотные, GetIndices(). |