std :: array查找最大值函数

Gil*_*lad 1 c++ arrays max

这是我的阵列

std::array<double, 64> fm_sim;
Run Code Online (Sandbox Code Playgroud)

我想找到数组中的最大值.

我不能用

double maxFmSim = std::max(fm_sim.begin(), fm_sim.end());
Run Code Online (Sandbox Code Playgroud)

这是错误:预期的标识符

现在这就是我正在做的事情

 double maxFmSim = fm_sim[0];
 for (int i = 0; i < 64; i++)
 {
    if(fm_sim[i] > maxFmSim)
    {
        maxFmSim = fm_sim[i];
     }
 }
Run Code Online (Sandbox Code Playgroud)

是否有更快的方式/其他std/stl函数,我可以使用它来找到最大值?

Cor*_*mer 9

该函数std::max返回两个值之间的较大值.对于您可以使用的容器std::max_element.由于这会将迭代器返回到max元素,因此需要取消引用它.

double maxFmSim = *std::max_element(fm_sim.begin(), fm_sim.end());
Run Code Online (Sandbox Code Playgroud)

  • 无需记住何时只需查找可用的标准算法列表. (8认同)