map容器的自定义排序
时间: 2024-05-12 07:20:54 浏览: 85
map插入自定义对象总结
在map容器中,可以通过定义比较函数来实现自定义排序。比较函数可以是一个函数对象或者一个函数指针,其返回值为bool类型,表示两个元素的大小关系。
下面给出一个示例代码,实现对map容器中元素按照value值从小到大排序的功能:
```cpp
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
bool cmp(const pair<int, int>& a, const pair<int, int>& b) {
return a.second < b.second;
}
int main() {
map<int, int> m;
m[1] = 3;
m[2] = 1;
m[3] = 5;
m[4] = 2;
vector<pair<int, int>> v(m.begin(), m.end());
sort(v.begin(), v.end(), cmp);
for(auto p : v) {
cout << p.first << " " << p.second << endl;
}
return 0;
}
```
上述代码中,我们定义了一个比较函数cmp,用来比较两个pair<int, int>类型的元素,其比较规则是按照pair的第二个元素从小到大排序。然后我们将map容器中的元素转换为vector容器,并使用sort函数进行排序。最后遍历vector容器输出排序后的结果。
阅读全文