如何遍历boost::multi_array
how to traverse a boost::multi_array
我一直在研究boost::multi_array库,以寻找一个允许您在单个for循环中遍历整个 multi_array的迭代器。
我认为该标准库中没有这样的迭代器。(在这里找到的迭代器允许遍历multi_array的单个维度)
我错了吗?
如果没有,是否有库定义了这样的迭代器?
进入细节,我想这样写:
boost::multi_array< double, 3 > ma(boost::extents[3][4][2]);
for( my_iterator it = ma.begin(); it != ma.end(); ++it )
{
// do something
// here *it has element type (in this case double)
}
并获得一个重复3x4x2次的循环
您可以使用来自<algorithm>
的std::for_each
实现来访问每个单独的元素。Boost文档
也可以使用array::origin()
和array::num_elements()
,如下所示:
boost::multi_array< double, 3 > ma(boost::extents[3][4][2]);
for(auto i = ma.origin(); i < (ma.origin() + ma.num_elements()); ++i)
{
// do something with i
}
相关文章:
- C++11 中不同类型的对象的 std::array 的替代方案
- constexpr begin of a std::array
- C++如果必须在编译时确定大小,std::array 有什么意义?
- 可视化C++:发布模式的运行时库作为'Multi-threaded Debug DLL'
- OpenGL VBO Indexing ( How to compute Index Array)
- 标准::unordered_map 中的 std::array 的值初始化
- "Warning: Comma within array index expression"但逗号分隔函数参数
- 确保编译时的特定 std::array 位置
- std::array的长度有大小限制吗?
- 将 std::array 移动到另一个 std::array
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 为什么 std::shared_ptr 被认为是"heavy"和"expensive",但 std::array "same perfprmance as plain (c-style) arrays
- 将 **float array 从 C++ Dll 传递给 python
- std::bind on statd::array 的运算符 []
- 检查输入 std::array 指针数据是否等于某个常量数组
- 我可以安全地复制矢量<array>吗?
- 解析问题 - 预期的非限定 ID - #include <array> 编译错误
- 如何读/写或遍历 std::array 中的特定元素范围?
- 通过 host() 从 af::array 检索数据会导致错误的数据
- "dynamically allocated memory emulating multi-dimensional array"的正确术语?