C++ 不带“的对向量上的最大”元素;谓语;

C++ 不带“的对向量上的最大”元素;谓语;,c++,c++11,std,C++,C++11,Std,我想找到对的向量的最大元素。 我的标准是:max元素是该对中第二个值最高的元素。 我这样做: auto max_angle = std::max_element(begin(angles), end(angles), [](const std::pair<int, int>& left, const std::pair<int, int>& right){ return left.second < r

我想找到
对的
向量的最大元素。
我的标准是:max元素是该对中第二个值最高的元素。
我这样做:

auto max_angle = std::max_element(begin(angles), end(angles),
            [](const std::pair<int, int>& left, const std::pair<int, int>& right){
            return left.second <  right.second;
        });
auto max_angle=std::max_元素(开始(角度)、结束(角度),
[](常量标准::成对和左侧,常量标准::成对和右侧){
返回left.second

不写谓词也可以吗?由于pair是std结构,有没有更简单的方法来比较它呢?

没有,因为默认情况下,
std::pair
s是按字典顺序比较的,意思是从左到右按元素比较的。因此,您的解决方案是您可以拥有的最简单的解决方案。

抱歉,编辑了。。。我的意思是std::max_elemnt“pr _Pred”的第三个参数。您还可以考虑两件事:将
向量
转换为
映射
或将键和值拆分为单独的
向量
s。映射不是一个选项,因为我有重复的项。两个向量是一种可能的解决方案。然而,扔一个容器要比扔两个容器容易。。不是吗?