如果出现平局,如何使minmax_element返回索引最少的元素

时间:2016-06-08 16:15:06

标签: c++ std c++14 stl-algorithm

#include<utility>
#include<alogrithm>
#include<iostream>
using namespace std;
int main(void)
{
  int n=5;
  int s[]={3,5,1,5,5};
  auto r=minmax_element(s,s+n);
  cout<<r.second-s<<endl;
  cout<<*r.second;
  return 0;
}

这是使用索引打印数组中最大元素的代码。 我想要索引最小的最大元素(在平局的情况下是第一个最大值)

如何修改上述代码以获得结果。

1 个答案:

答案 0 :(得分:5)

如果您只需要max元素,为什么不使用std::max_element()函数?它会完全符合您的要求。

auto r = std::max_element(s, s+n);
cout << r-s << endl; // index of the maximum element in [s, s+n)
cout << *r  << endl; // value of the maximum element in [s, s+n)