1

有没有办法将视图的所有元素迭代到 Boost 中multi_array?很清楚如何迭代 Boost multi_array;即,越过范围[array.data(), array.data() + array.num_elements())。但是如果我在这个数组中创建一个视图(删除数组的某个子集),显然使用指针进行连续访问是不可能的:视图不会对应于任何连续的内存块。Boost 是否提供了一种机制来处理这个问题,还是我需要手动实现一个解决方案?

4

1 回答 1

0

幸运的是,multi_array 概念不需要任何连续的内存块。参考实现为每个维度存储一个步幅这一事实提供了足够的信息来正确地遍历视图。实际上,multi_array 概念要求返回的视图像标准容器一样可迭代。

于 2015-05-20T20:51:17.707 回答