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

通常情况下,map 容器中存储的各个键值对都选用 string 字符串作为键的类型。

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

关于如何自定义 map 容器的排序规则,后续章节会做详细讲解。

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

前面提到,map 容器存储的都是 pair 类型的键值对元素,更确切的说,该容器存储的都是 pair<const K, T> 类型(其中 K 和 T 分别

C++(STL):28 ---关联式容器map用法相关推荐

  1. C++(STL):29 ---关联式容器map 迭代器

    无论是前面学习的序列式容器,还是关联式容器,要想实现遍历操作,就必须要用到该类型容器的迭代器.当然,map 容器也不例外. C++ STL 标准库为 map 容器配备的是双向迭代器(bidirecti ...

  2. C++(STL):30 ---关联式容器map的operator[]和insert效率对比

    通过前面的学习我们知道,map 容器模板类中提供有 operator[ ] 和 insert() 这 2 个成员方法,而值得一提的是,这 2 个方法具有相同的功能,它们既可以实现向 map 容器中添加 ...

  3. C++(STL):26 ---关联式容器set用法

    set容器都会自行根据键的大小对存储的键值对进行排序, 只不过 set 容器中各键值对的键 key 和值 value 是相等的,根据 key 排序,也就等价为根据 value 排序. 另外,使用 se ...

  4. C++(STL):31 ---关联式容器map源码剖析

    map的特性 所有元素都会根据元素的键值自动被排序 map中的pair结构 map的所有元素类型都是pair,同时拥有实值(value)和键值(key) pair的第一个元素视为键值,第二个元素视为实 ...

  5. C++ STL : 模拟实现STL中的关联式容器map和set

    目录 关联式容器 键值对 底层红黑树的改造 仿函数 红黑树的迭代器 完整代码 set set的文档介绍 set的实现 map map的文档介绍 map的实现 operator[] 完整代码 multi ...

  6. STL关联式容器—map的使用

    一.map简介: map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素. 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值 ...

  7. 关联式容器(map,set,multimap,multiset)

    关联式概念 STL中的部分容器,比如:vector.list.deque.forward_list(C++11)等,这 些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身. ...

  8. 关联式容器---map和set

    map和set 1 关联式容器 2 键值对 3 树型结构的关联式容器 3.1 set 3.1.1 set 的介绍 3.1.1 set 的使用 3.2 map 3.2.1 map的介绍 3.2.2 ma ...

  9. C++(STL):24 ---序列式容器stack用法

    1.stack的定义 要使用stack,应先添加头文件#include <stack>, 并在头文件下面加上 "using namespace std" //定义 st ...

最新文章

  1. 中科大博士20万字正经论文:教你如何给女朋友送礼物
  2. Android Material Design按钮样式
  3. Winform开发框架之数据曲线报表
  4. 线程监视器模型_为什么模型验证如此重要,它与模型监视有何不同
  5. jax-rs jax-ws_Tomcat上具有JAX-WS的Web服务
  6. Http请求处理流程
  7. Python深入05 装饰器
  8. matlab 有公式 变量,matlab两个变量拟合公式x=0.40.450.50.550? 爱问知识人
  9. 火车售票系统html模板,火车售票系统完整代码.doc
  10. 手游SDK-数据上报
  11. java简单识别闰年和平年问题
  12. windows提权速查流程
  13. 使用C#进行图像处理
  14. Apache Storm中KafkaSpout使用
  15. IBC算法之SM9简介
  16. 打印1-200之间5的倍数
  17. 在家用电器中使用单片机应属于微型计算机的,在家用电器中使用单片机应属于微计算机的什么...
  18. 为什么二次型椭圆的长、短轴在二次型矩阵的特征向量上?
  19. Odoo进销存业务思路浅析
  20. Error:Cannot fit requested classes in a single dex file.。。。编译错误

热门文章

  1. django 学习 (一)
  2. 超声声场模拟_超声全聚焦(TFM)简介
  3. python爬虫程序自动结束-在linux下python爬虫进程发生异常时自动重启直至正常结束的方法...
  4. halcon旋转后坐标_FPGA大赛【八】具体模块设计图像旋转方案
  5. activity 点击后传递数据给fragment_Fragment 新特性 : Fragment Result API 使用以及源码分析
  6. 计算机应用基础 第三版 实验报告,计算机应用基础实验报告(windows).doc
  7. ArcGIS Engine Runtime 10 Setup步骤
  8. 【转】Dicom基础知识
  9. 【转】我的CV之路第一篇:ITK是啥?
  10. 第十一节:基于MVC5+Spring.Net+EF+Log4net 传统的一种搭建模式