#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
// 按照 value 排序的函数
bool valueCompare(pair<int, string> a, pair<int, string> b) {
return a.second < b.second;
}
int main() {
// 创建一个 map
map<int, string> myMap = {
{1, "apple"},
{2, "orange"},
{3, "banana"},
{4, "grape"}
};
// 将 map 转换为 vector 以便排序
vector<pair<int, string>> vec(myMap.begin(), myMap.end());
// 使用自定义比较函数对 vector 进行排序
sort(vec.begin(), vec.end(), valueCompare);
// 输出排序后的结果
cout << "Sorted map by value:" << endl;
for (auto &p : vec) {
cout << p.first << ": " << p.second << endl;
}
return 0;
}
map<int, string>,其中键是整数类型,值是字符串类型。map 本身不支持直接按照值排序,我们将 map 的元素复制到一个 vector<pair<int, string>> 中。std::sort 函数和自定义的比较函数 valueCompare 对 vector 进行排序。这里我们根据 pair 的第二个元素(即 string)进行排序。vector 并输出键值对。如果你需要按照键排序,map 默认就是按照键升序排列的,无需额外操作。
上一篇:c++ 分割string
下一篇:c++中/是什么意思
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站