3

我正在寻找tuplesstd::vectortuplesstd::array的变体,其中元组元素非交错放置到单独的内存区域中,而不是交错放置,例如 a 。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 回答