[英]Finding the minimum and maximum values in a std::vector of std::pair
I'm trying to find out minimum/maximum value in a vector of pair<int, std::string>
我试图找出向量pair<int, std::string>
中的最小/最大值pair<int, std::string>
My Code : 我的代码:
#include <iostream>
#include <vector>
#include <string>
int main()
{
std::vector<std::pair<int, std::string>> pairs;
pairs = {{6,"a"}, {4,"b"}, {5,"c"}, {8,"d"}, {7,"e"}};
int min = 0, max = 0;
//how to find out min/max?
std::cout << "Minimum Number : " << min << '\n';
std::cout << "Maximum Number : " << max << '\n';
}
The Result I want : 我想要的结果:
Minimum Value : 4
Maximum Value : 8
Program ended with exit code: 0
How can I get the result I want? 如何获得想要的结果?
EDITED : 编辑:
Here's my so far solution. 这是我到目前为止的解决方案。
std::sort(pairs.begin(), pairs.end());
min = pairs[0].first;
max = pairs[pairs.size()-1].first;
Although it works, I would like to learn a simpler and faster solution than this. 尽管它可以工作,但我想学习一个比这更简单,更快的解决方案。
You might use std::minmax_element
: 您可以使用std::minmax_element
:
const auto p = std::minmax_element(pairs.begin(), pairs.end());
auto min = p.first->first;
auto max = p.second->first;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.