C++ 查找std::pair的std::向量中的最小值和最大值

C++ 查找std::pair的std::向量中的最小值和最大值,c++,vector,max,min,std-pair,C++,Vector,Max,Min,Std Pair,我试图找出一对向量中的最小值/最大值 我的代码: 我怎样才能得到我想要的结果 编辑: 这是我目前的解决方案 std::sort(pairs.begin(), pairs.end()); min = pairs[0].first; max = pairs[pairs.size()-1].first; 虽然它可以工作,但我想学习一种比这更简单、更快的解决方案。您可以使用std::minmax\u元素: 您可以使用std::minmax\u元素: 非常感谢你。这比我自己的解决方案快吗?复杂性在上,而

我试图找出一对向量中的最小值/最大值

我的代码:

我怎样才能得到我想要的结果

编辑:

这是我目前的解决方案

std::sort(pairs.begin(), pairs.end());
min = pairs[0].first;
max = pairs[pairs.size()-1].first;
虽然它可以工作,但我想学习一种比这更简单、更快的解决方案。

您可以使用std::minmax\u元素:

您可以使用std::minmax\u元素:


非常感谢你。这比我自己的解决方案快吗?复杂性在上,而您的在日志n上。它使用的比较比std::min_元素后跟std::max_元素或与C++17:auto&&[min,max]=std::minmax_元素beginpairs,endpairs更少;为了简洁起见。@Deduplicator:还有std::pair::第一个要打电话。非常感谢。这比我自己的解决方案快吗?复杂性在上,而您的在日志n上。它使用的比较比std::min_元素后跟std::max_元素或与C++17:auto&&[min,max]=std::minmax_元素beginpairs,endpairs更少;为了简洁起见。@Deduplicator:仍然有std::pair::first要调用。查看可能是一个很好的第一步。查看可能是一个很好的第一步。
Minimum Value : 4
Maximum Value : 8
Program ended with exit code: 0
std::sort(pairs.begin(), pairs.end());
min = pairs[0].first;
max = pairs[pairs.size()-1].first;
 const auto p = std::minmax_element(pairs.begin(), pairs.end());
 auto min = p.first->first;
 auto max = p.second->first;