Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ map 排序

作者:▍看女人酒醒的疯癫。   发布日期:2025-12-09   浏览:27

#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;
}

解释说明:

  1. 创建 map:我们首先创建了一个 map<int, string>,其中键是整数类型,值是字符串类型。
  2. 转换为 vector:由于 map 本身不支持直接按照值排序,我们将 map 的元素复制到一个 vector<pair<int, string>> 中。
  3. 排序:使用 std::sort 函数和自定义的比较函数 valueComparevector 进行排序。这里我们根据 pair 的第二个元素(即 string)进行排序。
  4. 输出结果:最后,我们遍历排序后的 vector 并输出键值对。

如果你需要按照键排序,map 默认就是按照键升序排列的,无需额外操作。

上一篇:c++ 分割string

下一篇:c++中/是什么意思

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++格式化字符串

c++ orm框架

c++ random函数用法

队列c++

c++freopen怎么用

进制转换c++代码

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站