c++ 将map排序
时间: 2023-11-03 14:57:17 浏览: 47
在C++中,可以使用sort函数对map进行排序。由于map是按照键(key)进行排序的,默认情况下是按照键的升序排列。如果想要按照值(value)进行排序,可以将map的键值对拷贝到vector容器中,然后使用自定义的排序规则对vector进行排序。以下是一个对map按照值排序的示例代码:
```cpp
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
bool cmp(const std::pair<std::string, int>& a, const std::pair<std::string, int>& b) {
return a.second > b.second;
}
int main() {
std::map<std::string, int> m;
m["asas"] = 18;
m["ioio"] = 90;
m["cj"] = 89;
std::vector<std::pair<std::string, int>> v(m.begin(), m.end());
std::sort(v.begin(), v.end(), cmp);
for (int i = 0; i < v.size(); i++) {
std::cout << v[i].first << " " << v[i].second << std::endl;
}
return 0;
}
```
这段代码首先定义了一个map对象m,然后将它的键值对拷贝到vector对象v中。接下来,通过sort函数对v进行排序,排序规则使用了自定义的cmp函数,该函数按照值的降序进行排序。最后,遍历排序后的v,输出排序结果。