关于 STL map容器

· map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。

 

· 创建 map 容器:

map<string,int>all;

 

· 使用 map 容器存储的各个键值对,键的值既不能重复也不能被修改。

 

· 在使用 map 容器存储多个键值对时,该容器会自动根据各键值对的的大小,按照既定的规则进行排序。默认情况下会自动选择 less<T> 做升序排序,当然也可以手动指定排序规则,比如选用 greater<T> ,或者自定义排序规则。比如:

map<string,int,greater<string>>all{{"hello",111},{"bye",222}};

  此时,all 容器内部键值对排列的顺序为:

<"hello",111>
<"bye",222>

 

· 当使用 struct 作为 map 中的 key 时,需要手动对 struct 进行实现,重载 < 运算符的代码。因为 map 容器本身通过的 < 对 key 做升序排序,但是 key 为结构体时,< 无法对结构体进行排序。比如:

复制代码
struct point
{
    int x,y,r;
    bool operator<(const point &p)const
    {
        if(x==p.x)
        {
            if(y==p.y)
                return r<p.r;
            return y<p.y;
        }
        return x<p.x;
    }
};
复制代码

 

· 一篇关于《c++的map排序》的博客:https://blog.csdn.net/chengqiuming/article/details/89816566?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164964475316782089350436%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164964475316782089350436&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-89816566.142^v7^pc_search_result_cache,157^v4^control&utm_term=map+operator%E6%8E%92%E5%BA%8Fc%2B%2B&spm=1018.2226.3001.4187

posted @   爱吃虾滑  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示