21xrx.com
2024-12-27 19:59:57 Friday
登录
文章检索 我的文章 写文章
C++中如何对map进行排序?
2023-06-29 18:55:11 深夜i     --     --
C++ map 排序

在C++中,map是一种关联容器,其基本结构是由键值对组成。由于map是通过红黑树实现的,因此其元素具有排序特性。但是,有时候我们需要按照自己的需求对map进行排序,这就需要用到一些排序方法。

一种常用的排序方法是利用STL库中的sort()函数,该函数可以对容器中的元素进行排序。实现map排序的方法是将map转换为一个vector,然后对vector进行排序。转换后的vector中的元素是pair类型,可以通过pair的第一个元素或第二个元素进行排序。

下面是一个示例代码,说明如何利用sort()函数对map进行排序:


#include <iostream>

#include <map>

#include <vector>

#include <algorithm>

using namespace std;

int main()

{

  map<string, int> m;

  m["C++"] = 3;

  m["Java"] = 2;

  m["Python"] = 1;

  vector<pair<string, int>> v(m.begin(), m.end());

  sort(v.begin(), v.end(), [](auto &left, auto &right)

    return left.second < right.second;

  );

  for (auto p : v)

    cout << p.first << " " << p.second << endl;

  

  return 0;

}

在上面的代码中,我们创建了一个map,然后将其转换为一个vector,并使用lambda表达式对vector进行排序。具体来说,我们按照map的值进行排序,也就是按照第二个元素排序。

最后,我们输出排序后的结果。可以看到,结果是按照值从小到大排序的。

总的来说,利用sort()函数对map进行排序很方便,只需要将map转换为一个vector即可。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复