3

タプルstd::vectorのまたはstd::arrayのバリアントを探しています。タプル要素は、たとえば、の場合のようにインターリーブされるのではなく、インターリーブされていない別のメモリ領域に配置されますstd::vector<std::tuple<...>>

この動機は

  • アラインメントの制御が向上し、ベクトル最適化のパフォーマンスが向上します
  • OpenGLで低レベルのCPU-GPUデータ転送操作(頂点や色の配列など)をインターフェイスするときに、データ要素を解凍する必要がなくなります。

boost::tuple<> イテレータは、参照解除されたときにオンザフライで構築して返す必要があります。

このコンテナですべてのSTLメンバー関数を効率的にサポートできるわけではないことを認識しています。たとえば、STLdata()コンテナメンバー関数は、動的に作成された可変のベクトルコンテナにすべての個別の配列を動的に圧縮し、そのdata()を返す必要があります。

誰かがそのようなテーブルコンテナをすでに構築しましたか?

4

2 に答える 2

4

Boost.Iteratorはまさにあなたが説明したものを持っています:boost::zip_iterator

于 2011-06-09T15:01:00.283 に答える
1

反復と a に関するその他のいくつかの操作をサポートするシン ラッパーを作成しtuple<vector, vector, vector>、その方法でデータを表現するのはどうでしょうか。必要なインターフェイスを提供する標準コンテナを知りません。

于 2011-06-09T14:47:51.220 に答える