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。映射不是一个选项,因为我有重复的项。两个向量是一种可能的解决方案。然而,扔一个容器要比扔两个容器容易。。不是吗?