Share via


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> するすべてのコードは、値の代入で完全に独立したコピーを作成するのに十分であると仮定しています。 したがって、たとえば、これはバッファーのバッファーが不可能であることを意味します。 ただし、、 ReadOnlyMemory<T>などInt32Singleはまったく問題ありません。

継承
VBuffer<T>
実装

注釈

この構造体自体は変更できませんが、内部バッファーの再利用を含むバッファー編集を有効にするには、 を使用してVBuffer<T>変更可能なバリアントVBufferEditor<T>にアクセスできます。

コード全体を通して、スパースVBuffer<T>は、既定値を入力するためのT既定値を持つ高密度VBuffer<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()

明示的に表される値。 この IsDense場合、返される値の は Length と等しく Length、それ以外の場合は より短い Length長さになります。

Items(Boolean)

すべてのインデックスと値のペアの結合リストを返します。

ToString()

高密度表現とスパース表現の両方をサポートするバッファー。 これは、すべての VectorDataViewType インスタンスの表現型です。 このベクトルの明示的に定義された値は、 と を介して GetValues() 公開されます (高密度 GetIndices()でない場合は )。

適用対象