我正在寻找 std::vector
的变体或 std::array
元组,其中元组元素非交错放入单独的内存区域,而不是交错放置,例如,一个std::vector<std::tuple<...>>
.
这样做的动机是
- 更好地控制对齐,进而 boost vector 优化性能。
- 防止我们在连接低级 CPU-GPU 数据传输操作(例如顶点和颜色数组)时必须解包数据元素OpenGL。
迭代器应该构造并返回一个 boost::tuple<>
在取消引用时即时。
我知道并非所有 STL 成员函数都可以在此容器中得到有效支持。例如 STL data()
容器成员函数必须动态压缩所有单独的数组到一个可变的动态创建的 vector 容器中并返回它的 data()。
有没有人构建过这样的表格容器?
最佳答案
Boost.Iterator完全符合您的描述:boost::zip_iterator
关于非交错存储元组的 C++ 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6294578/