VBuffer<T> Struktura

Definice

Vyrovnávací paměť, která podporuje zhuštěné i řídké reprezentace. Toto je typ reprezentace pro všechny VectorDataViewType instance. Explicitně definované hodnoty tohoto vektoru jsou vystaveny GetValues() a pokud nejsou hustě, 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)

Parametry typu

T

Typ vektoru. Neexistují žádná omezení doby kompilace, co by to mohlo být, ale tento kód a prakticky veškerý kód, který používá VBuffer<T> , předpokládá, že přiřazení hodnoty stačí k vytvoření zcela nezávislé kopie. To například znamená, že vyrovnávací paměť vyrovnávací paměti není možná. Ale věci jako Int32, Singlea ReadOnlyMemory<T>, jsou naprosto v pořádku.

Dědičnost
VBuffer<T>
Implementuje

Poznámky

Tato struktura je sama o sobě neměnná, ale pokud chcete povolit úpravy vyrovnávací paměti, včetně opakovaného použití interních vyrovnávacích pamětí, lze k proměnlivé variantě VBufferEditor<T> přistupovat prostřednictvím VBuffer<T>.

V celém kódu předpokládáme, že řídký VBuffer<T> je logicky ekvivalentní hustě VBuffer<T> s výchozí hodnotou pro T vyplnění výchozích hodnot.

Konstruktory

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

Vytvořte pravděpodobně řídké vektorové znázornění.

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

Vytvořte hustou reprezentaci. Matice indices je často nezadaná, ale pokud je zadaná, měla by být považována za vyrovnávací paměť, na které se má uchovávat, aby se mohla použít.

Pole

Name Description
Length

Logická délka vyrovnávací paměti.

Vlastnosti

Name Description
IsDense

Získá hodnotu určující, zda je každý logický prvek explicitně reprezentován v vyrovnávací paměti.

Metody

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

Zkopírujte z oddílu zdrojového pole do daného cíle.

CopyTo(Span<T>, Int32, T)

Zkopírujte z této vyrovnávací paměti do daného cílového rozsahu počínaje zadaným indexem. Tato "densifuje"

CopyTo(Span<T>)

Zkopírujte z této vyrovnávací paměti do daného cílového rozsahu. Tato "densifuje"

CopyTo(VBuffer<T>, Int32, Int32)

Zkopírujte rozsah hodnot z této vyrovnávací paměti do daného cíle.

CopyTo(VBuffer<T>)

Zkopírujte z této vyrovnávací paměti do daného cíle.

CopyToDense(VBuffer<T>)

Zkopírujte z této vyrovnávací paměti do daného cíle, což vynutí zhuštěnou reprezentaci.

DenseValues()

Vrátí výčet s položkami Length představujícími hodnoty.

GetEnumerator()

Vrátí enumerátor, který iteruje hodnoty v VBuffer.

GetIndices()

Indexy. Pro hustou reprezentaci se toto pole nepoužívá a vrátí výchozí "prázdné" rozpětí. V případě řídké reprezentace se jedná o paralelní vrácené hodnoty GetValues() a určuje logické indexy odpovídajících hodnot v rostoucím pořadí mezi 0 včetně a Length výhradním, které odpovídají všem explicitně definovaným hodnotám. Všechny hodnoty v nezadaném indexu by měly být považovány za implicitně definované s výchozí hodnotou T.

GetItemOrDefault(Int32, T)

Získá položku uloženou v této struktuře. V případě zhuštěného vektoru se jedná o jednoduché vyhledávání. V případě řídké vektoru se pokusí najít položku s tímto indexem a nastavit destination ji na tuto uloženou hodnotu, nebo pokud nebyla nalezena žádná taková hodnota, přiřaďte ji výchozí hodnotu.

GetItemOrDefault(Int32)

Varianta GetItemOrDefault(Int32, T) , která vrátí hodnotu místo jeho předání zpět pomocí referenčního parametru.

GetValues()

Explicitně reprezentované hodnoty. V takovém IsDensepřípadě Length se vrácená hodnota rovná Lengtha jinak bude mít délku menší než Length.

Items(Boolean)

Vrátí společný seznam všech párů index/hodnota.

ToString()

Vyrovnávací paměť, která podporuje zhuštěné i řídké reprezentace. Toto je typ reprezentace pro všechny VectorDataViewType instance. Explicitně definované hodnoty tohoto vektoru jsou vystaveny GetValues() a pokud nejsou hustě, GetIndices().

Platí pro