7

我想知道一种简单的方法来查找 boost 多数组的最大/最小元素,一个具有 3 个索引的对象,如下所示:

int iDepth=10,iWidth=10,iHeight=10;
boost::multi_array<GLfloat, 3> image(boost::extents[iDepth][iWidth][iHeight]);
4

3 回答 3

2

这应该工作:

std::max_element( image.origin(), image.origin() + image.num_elements());
于 2014-01-22T15:29:11.470 回答
0

使用 memberdata()更正确,因为:

  1. 确保它image实际上是一个连续的(紧凑数组)。
  2. 从数组的开头开始扫描,即使第一个元素不是[0][0].... (origin()表示[0][0]...即使数组“开始”在不同点的地址,例如[1][1]....
std::max_element( image.data(), image.data() + image.num_elements());
于 2021-12-22T10:20:25.140 回答
-1

您是否尝试过类似的方法:

std::max_element( image.begin(), image.end());
于 2013-06-20T07:40:34.277 回答