max_element 在没有 "predicate" 的对向量上
max_element on vector of pairs without "predicate"
我想找到 pairs
的 vector
的最大元素。
我的标准是:最大元素是一对中第二个值最高的元素。
我这样做了:
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;
});
不写谓词可以吗?由于它是一个标准结构,有没有更简单的配对方法?
不,你不能,因为默认情况下 std::pair
s 是按字典序比较的,意思是从左到右逐元素。因此,您的解决方案是您可以拥有的最简单的解决方案。
我想找到 pairs
的 vector
的最大元素。
我的标准是:最大元素是一对中第二个值最高的元素。
我这样做了:
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;
});
不写谓词可以吗?由于它是一个标准结构,有没有更简单的配对方法?
不,你不能,因为默认情况下 std::pair
s 是按字典序比较的,意思是从左到右逐元素。因此,您的解决方案是您可以拥有的最简单的解决方案。