我想创建一个boost::multi_array<double, 2>::array_view<2>::type
,其列数少于原始boost::multi_array<double, 2>
。我可以使用index_range
来执行各种索引操作,但似乎它们都要求创建的视图是原始数组中的连续块。例如,我可以使用以下内容对列进行子选择:
typedef boost::multi_array::types::index_range range;
boost::multi_array<double, 2>::array_view<2>::type view =
original[boost::indices[range()][range() > 2]];
但似乎没有办法做这样的事情:
boost::multi_array<double, 2>::array_view<2>::type view =
original[boost::indices[range()][range() != 3]];
有没有办法创建这样的非连续视图,或者可能有效地将两个单独的视图合并到同一个数组中?