如何比较map里面第二个key的大小/
时间: 2023-08-09 08:11:27 浏览: 61
在C++中,我们可以使用自定义的比较函数来比较map中第二个key的大小。比如,我们可以使用以下代码来比较map中第二个key的大小:
```c++
#include <iostream>
#include <map>
using namespace std;
struct cmp {
bool operator()(const pair<int, int>& a, const pair<int, int>& b) const {
return a.second < b.second;
}
};
int main() {
map<int, int> mp{{1, 3}, {2, 1}, {3, 5}, {4, 2}, {5, 4}};
map<pair<int, int>, int, cmp> mp2;
for (auto& p : mp) {
mp2.insert({p.first, p.second});
}
for (auto& p : mp2) {
cout << "(" << p.first.first << "," << p.first.second << "): " << p.second << endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个自定义比较函数`cmp`,用来比较map中的pair类型(pair的第一个元素是map中的key,第二个元素是map中的value)。我们把这个自定义比较函数作为map的第三个参数传入,这样map就会按照我们自定义的比较函数来排序。在这个例子中,我们把map中的key和value都作为pair类型的第一和第二个元素,然后把这个pair作为mp2的key,mp中的value作为mp2的value。最后,我们遍历mp2,输出其中的元素即可。
阅读全文