インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
プリミティブの 1 次元コンテナーの構造体配列 (AoS) メモリーレイアウト用のテンプレート・クラスです。
#include <sdlt/aos1d_container.h>
template<
typename PrimitiveT,
AccessBy AccessByT,
class AllocatorT = allocator::default_alloc
>
class aos1d_container;
typename PrimitiveT |
配列の各要素の型。 |
access_by AccessByT |
メモリーレイアウトへのアクセス方法を制御する列挙型。ベクトル化の問題がない場合は access_by_struct の使用を推奨します。 詳細は、「access_by」を参照してください。 |
class AllocatorT = allocator::default_alloc |
[オプション] 使用されるアロケーターの型。 現在、allocator::default_alloc のみサポートされています。 |
内部的に構造体配列 (AoS) メモリーレイアウトを保持し、soa1d_container と互換性のあるインターフェイスを提供します。使用するコンテナーの型を変更することで、データレイアウトを簡単に切り替えることができます。アクセサーに関する残りのコードとプロキシーの要素およびメンバーの変更は不要です。
メンバー |
説明 |
---|---|
|
コンテナーのメソッドのサイズ指定に使用する型。 |
|
このコンテナーの accessor にエイリアスされたテンプレート。 |
|
このコンテナーの const_accessor にエイリアスされたテンプレート。 |
メンバーの型 |
説明 |
---|---|
|
オプションで指定されるアロケーター・インスタンスを使用して、size_d1 要素の初期化されていないコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
オプションで指定されるアロケーター・インスタンスを使用して、size_d1 要素のコンテナーを構築し、各要素を a_value で初期化します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
オプションで指定されるアロケーター・インスタンスを使用して、other の各要素を同じ順序でコピーしてコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
オプションで指定されるアロケーター・インスタンスを使用して、配列 other_array から number_of_elements 要素を同じ順序でコピーしてコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
オプションで指定されるアロケーター・インスタンスを使用して、範囲 [a_begin-an_end) の要素にその範囲の対応する要素から値を同じ順序でコピーしてコンテナーを構築します。4K キャッシュ・エイリアシングを管理できるように、オプションで指定されるキャッシュラインの数を使用してメモリー上のバッファーの開始位置をオフセットします。 |
|
戻り値: 要素の個別のコピーを含む新しい aos1d_container インスタンス。 |
|
new_size_d1 要素を含めるようにコンテナーのサイズを調整します。新しいサイズが現在のコンテナーサイズよりも大きい場合、新しい要素は初期化されません。 |
|
戻り値: 組込みインデックス offset を含まない accessor。 |
|
戻り値: 組込みインデックス offset に基づく整数ベースの accessor。 |
|
戻り値: 組込みインデックス offset に基づく aligned_offset<IndexAlignmentT> ベースの accessor。 |
|
戻り値: 組込みインデックス offset に基づく fixed_offset<OffsetT> ベースの accessor。 |
|
戻り値: 組込みインデックス offset を含まない const_accessor。 |
|
戻り値: 組込みインデックス offset に基づく整数ベースの const_accessor。 |
|
戻り値: 組込みインデックス offset に基づく aligned_offset<IndexAlignmentT> ベースの const_accessor。 |
|
戻り値: 組込みインデックス offset に基づく fixed_offset<OffsetT> ベースの const_accessor。 |
STL との互換性
上の表のパフォーマンス重視のインターフェイスに加えて、aos1d_container はパフォーマンスよりも統合を重視した std::vector インターフェイスのサブセットを実装します。インポート/エクスポートのみという制約により、オブジェクトへの参照を返すことはできません。代わりに、iterators と operator[] はプロキシー・オブジェクトを返し、その他の "const' メソッドは "value_type const" を返します。さらに、iterators は -> 演算子をサポートしていません。この制約にもかかわらず、iterators は STL アルゴリズムに渡すことができます。また、パフォーマンス上の理由から、resize は新しい要素を初期化しません。次の std::vector インターフェイス・メソッドが実装されます。
size、max_size、capacity、empty、reserve、shrink_to_fit
assign、push_back、pop_back、clear、insert、emplace、erase
cbegin、cend、begin、end、crbegin、crend、rbegin、rend、rbegin、rend
operator[]、front() const、back() const、at() const
swap、==、!=
swap、aos1d_container(aos1d_container&& donor)、aos1d_container & operator=(aos1d_container&& donor)