【发布时间】:2010-04-29 13:07:23
【问题描述】:
这是一个提升示例:
typedef boost::multi_array<double, 1> array_type;
typedef array_type::index index;
array_type A(boost::extents[100]);
for(index i = 0; i != A.size(); ++i) {
A[i] = (double)i;
}
// creating view
array_type::index_gen indices;
typedef boost::multi_array_types::index_range range;
array_type::array_view<1>::type myview = A[ indices[range(0,50)] ];
这段代码的作用是在原始数组上创建一个子数组或视图映射。该视图是连续的,涵盖了原始数组的第 0 到第 50 个元素。
如果我需要明确定义我想在视图中看到的元素怎么办?如何使用 [1, 5, 35, 23] 之类的索引创建视图?有什么想法吗?
【问题讨论】:
-
您的问题是否仅限于一维的多数组?
-
一点也不,只是用简单的例子来讨论概念性的事情要容易得多。一维对此有好处)在 boost::vector 或 boost::array 中是否有类似 view-approach 的东西?