• C++ map容器


    作为关联式容器的一种,map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。其中,各个键值对的键和值可以是任意数据类型,包括 C++ 基本数据类型(int、double 等)、使用结构体或类自定义的类型。

    它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。

    与此同时,在使用 map 容器存储多个键值对时,该容器会自动根据各键值对的键的大小,按照既定的规则进行排序。默认情况下,map 容器选用std::less排序规则(其中 T 表示键的数据类型),其会根据键的大小对所有键值对做升序排序。当然,根据实际情况的需要,我们可以手动指定 map 容器的排序规则,既可以选用 STL 标准库中提供的其它排序规则(比如std::greater),也可以自定义排序规则。

    另外需要注意的是,使用 map 容器存储的各个键值对,键的值既不能重复也不能被修改。换句话说,map 容器中存储的各个键值对不仅键的值独一无二,键的类型也会用 const 修饰,这意味着只要键值对被存储到 map 容器中,其键的值将不能再做任何修改。

    pair<const K, T>
    1. template < class Key, // 指定键(key)的类型
    2. class T, // 指定值(value)的类型
    3. class Compare = less, // 指定排序规则
    4. class Alloc = allocatorconst Key,T> > // 指定分配器对象的类型
    5. > class map;

    map 容器模板有 4 个参数,其中后 2 个参数都设有默认值。大多数场景中,我们只需要设定前 2 个参数的值,有些场景可能会用到第 3 个参数,但最后一个参数几乎不会用到。

    MAP容器详细内容参见:C++ STL map容器详解 (biancheng.net)

  • 相关阅读:
    C++容器适配器操作总结(代码+示例)
    递归拼接树形结构
    docker 安装 redis
    es 生产用操作
    系统封装制作
    华为数通HCIA-华为VRP系统基础
    美容院拓客活动方案多套
    Java教程:如何用控制台打印日历?
    利用SpringBoot框架轻松上手常用的设计模式
    SQL Server 2019企业版和标准版的区别?
  • 原文地址:https://blog.csdn.net/MWooooo/article/details/126710916