Boost c++ -动态迭代多数组
Boost C++ - dynamically iterating over multi-array
我有一个大的2D multi_array,我需要减少到一个较小的数据集(也是2D)。在运行时,我有一个列索引的向量,我想选择并放入子数组。
我知道您可以使用boost::multi_array_type::index_range从原始数组创建子数组,但我看到的所有示例都使用硬编码范围。是否有一种方法可以在运行时使用值向量设置index_range,或者这在multi_array中是不可能的?
我想做一些像
vector<int> columnIndex; // contains some values
boost::multi_array_types::index_range range;
for(int idx = 0; idx < columnIndex.size(); ++idx)
range = columnIndex[idx];
我查看了boost::multi_array_type::index_range的boost代码,发现这是不可能的。该类只有三个成员来存储索引值——start、finish和stride。它不能存储更复杂的值集。
由于我需要的列数是动态的,所以我使用了子数组向量(array_view),
vector<boost::multi_array_ref<double, 2>::array_view<2>::type::const_reference
相关文章:
- 如何以优化的方式同时迭代两个间距不相等的数组
- 为什么我的 scanf() 没有在我的数组上迭代我的 for 循环?
- 迭代器库中的 std::size() 不适用于传递给函数的 C 样式数组
- 自定义 STL 兼容迭代器,用于迭代 2D 数组类的列
- 在C++中使用 for 循环的数组迭代
- 如何使用基于范围的for循环迭代Rapidjson文档(它本身就是一个JSON数组)
- 获取 c++ 中具有恒定长度的数组的迭代器
- 指针到指针 2-D 数组中的迭代
- 如何通过引用对用户定义对象的类型集 (STL) 的数组元素进行增强迭代?
- 为自定义数组实现迭代器
- 数组迭代器不是可取消引用的错误
- 元素级多维数组迭代,与存储顺序无关
- 多维数组迭代效率
- std::不带模板的数组迭代器范围
- 在多线程代码中缓存友好的数组迭代模式
- 用1个循环解释二维数组迭代
- 可变模板形参和元组迭代
- 数组迭代器中的hasNext()方法
- 兼容STL的两个数组迭代器
- 对于循环数组迭代,if循环测试索引是否为真/假,计算结果不正确