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

c++ map排序

作者:刀剑傲天   发布日期:2025-04-27   浏览:44

#include <iostream>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

// 按照value排序的函数
bool compare(const pair<int, string>& a, const pair<int, string>& b) {
    return a.second < b.second;
}

int main() {
    // 创建一个map,键为int类型,值为string类型
    map<int, string> myMap = {
        {1, "apple"},
        {3, "banana"},
        {2, "cherry"}
    };

    // 将map中的元素拷贝到一个vector中
    vector<pair<int, string>> vec(myMap.begin(), myMap.end());

    // 使用自定义的比较函数对vector进行排序
    sort(vec.begin(), vec.end(), compare);

    // 输出排序后的结果
    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中。
  3. 自定义比较函数:定义了一个名为compare的函数,用于比较两个pair<int, string>类型的元素,并根据值(即second)进行排序。
  4. 排序:使用std::sort函数和自定义的比较函数对vector进行排序。
  5. 输出结果:遍历排序后的vector并输出每个元素。

如果你希望直接在map中按键排序,那么不需要额外的操作,因为map默认就是按键排序的。

上一篇:c++ rtti

下一篇:c++ 获取文件大小

大家都在看

c++闭包

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

c++ 注释

c++如何判断素数

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

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

Laravel 中文站