如何从升压多阵列中获得最大/最小元素

How to get max/min element from a boost multiarray

本文关键字:元素 阵列      更新时间:2023-10-16

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

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

应该可以:

std::max_element( image.origin(), image.origin() + image.num_elements());

使用成员data()更正确,因为:

  1. 确保image实际上是一个连续的(紧凑数组)。
  2. 从数组的开头开始扫描,即使第一个元素不是[0][0]...。(origin()表示[0][0]...的地址,即使数组"启动";在不同的点,例如[1][1]...
std::max_element( image.data(), image.data() + image.num_elements());

你有没有试过:

std::max_element( image.begin(), image.end());