gpt4 book ai didi

c++ - 如何遍历一个boost::multi_array

转载 作者:可可西里 更新时间:2023-11-01 18:27:38 28 4
gpt4 key购买 nike

我一直在研究 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次的循环

最佳答案

您可以使用 std::for_each 的实现来自 <algorithm>访问每个单独的元素。 Boost documentation 中有一个示例

或者,您可以使用 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++ - 如何遍历一个boost::multi_array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5572464/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com