VBuffer<T> Estrutura

Definição

Um buffer que dá suporte a representações densas e esparsas. Esse é o tipo de representação para todas as VectorDataViewType instâncias. Os valores definidos explicitamente desse vetor são expostos por meio GetValues() e, se não denso, 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)

Parâmetros de tipo

T

O tipo do vetor. Não há restrições de tempo de compilação sobre o que isso poderia ser, mas esse código e praticamente todo o código que usa VBuffer<T> pressupõe que uma atribuição de um valor é suficiente para fazer uma cópia completamente independente dele. Portanto, por exemplo, isso significa que um buffer de buffers não é possível. Mas, coisas como Int32, Singlee ReadOnlyMemory<T>, estão totalmente bem.

Herança
VBuffer<T>
Implementações

Comentários

Essa estrutura é por si só imutável, mas para habilitar a edição de buffer, incluindo o reutilizamento dos buffers internos, uma variante VBufferEditor<T> mutável pode ser acessada por meio VBuffer<T>de .

Em todo o código, fazemos a suposição de que um esparso VBuffer<T> é logicamente equivalente a um denso VBuffer<T> com o valor padrão para T preencher os valores padrão.

Construtores

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

Construir uma representação de vetor possivelmente esparsa.

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

Construa uma representação densa. A indices matriz geralmente não é especificada, mas, se especificada, deve ser considerada um buffer a ser mantido, a ser possivelmente usado.

Campos

Nome Description
Length

O comprimento lógico do buffer.

Propriedades

Nome Description
IsDense

Obtém um valor que indica se cada elemento lógico é representado explicitamente no buffer.

Métodos

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

Copie de uma seção de uma matriz de origem para o destino determinado.

CopyTo(Span<T>, Int32, T)

Copie desse buffer para o intervalo de destino fornecido, começando no índice especificado. Isso "densifica".

CopyTo(Span<T>)

Copie desse buffer para o intervalo de destino fornecido. Isso "densifica".

CopyTo(VBuffer<T>, Int32, Int32)

Copie um intervalo de valores desse buffer para o destino fornecido.

CopyTo(VBuffer<T>)

Copie desse buffer para o destino fornecido.

CopyToDense(VBuffer<T>)

Copie desse buffer para o destino determinado, forçando uma representação densa.

DenseValues()

Retorna um enumerável com Length itens, representando os valores.

GetEnumerator()

Retorna um enumerador que itera por meio dos valores no VBuffer.

GetIndices()

Os índices. Para uma representação densa, essa matriz não é usada e retornará o intervalo padrão "vazio". Para uma representação esparsa, ela é paralela à retornada GetValues() e especifica os índices lógicos para os valores correspondentes, em ordem crescente, entre 0 inclusive e Length exclusiva, correspondente a todos os valores explicitamente definidos. Todos os valores em índices não especificados devem ser tratados como sendo definidos implicitamente com o valor padrão de T.

GetItemOrDefault(Int32, T)

Obtém o item armazenado nessa estrutura. No caso de um vetor denso, essa é uma pesquisa simples. No caso de um vetor esparso, ele tentará localizar a entrada com esse índice e definirá destination para esse valor armazenado, ou se nenhum valor desse tipo foi encontrado, atribua-lhe o valor padrão.

GetItemOrDefault(Int32)

Uma variante desse valor retorna o valor em vez de passá-lo de volta usando um parâmetro de GetItemOrDefault(Int32, T) referência.

GetValues()

Os valores explicitamente representados. Quando isso IsDense, o Length valor retornado será igual Lengthe, caso contrário, terá comprimento menor que Length.

Items(Boolean)

Retorna a lista conjunta de todos os pares índice/valor.

ToString()

Um buffer que dá suporte a representações densas e esparsas. Esse é o tipo de representação para todas as VectorDataViewType instâncias. Os valores definidos explicitamente desse vetor são expostos por meio GetValues() e, se não denso, GetIndices().

Aplica-se a