map类型通常被称为关联数组,与正常数组类似,不同之处在于其下标不必是整数。我们通过一个关键字而不是位置来查找值(键值对)。

与之相对,set就是关键字的简单集合。当只是想知道一个值是否存在时,set是最有用的。

类似顺序容器,关联容器也是模板,为了定义一个map,我们必须指定关键字和值得类型。例:map<string,int>test;一个test的空map,关键字是string、值是int的。set<string> e={"hello"};设置关键字集合,类型为string。当定义一个map时,必须指明关键字类型又指明值类型;而定义一个set时,只需指明关键字类型,因为set中没有值。当初始化map时,我们将每个键值对包围在花括号中:{key,value}。

一个map或者set中的关键字必须是唯一的,即,对于一个给定的关键字,只能有一个元素的关键字等于它。容器multimap和multiset没有此限制,它们都允许多个元素具有相同的关键字。对于有序容器----map、multimap、set、multiset,关键字类型必须定义元素比较的方法。默认情况下,标准库使用关键字类型的<运算符来比较两个关键字。在集合类型中(set类),关键字类型就是元素类型;在映射类型中(map类),关键字类型是元素第一部分的类型。

pair类型:

在介绍关联容器操作之前,我们需要了解名为pair的标准库类型,它定义在头文件utility中。一个pair保存两个数据成员,类似容器,pair是一个用来生成特定类型的模板。——P380 c++ primer 5th。

这里的知识点一一罗列有点耗时间,直接看书学了p381开始。

关联容器——map、set相关推荐

  1. 200922阶段一C++关联容器map

    目录 一.学习的知识点 关联容器 map 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 四.作业的思路.不会的地方 五.其他需要反馈的问题 一.学习的知识点 关联容器 通过保存在数据项中的索 ...

  2. C++|STL学习笔记-对STL中关联容器map的进一步认识

    关联容器map key + value 的值 关联容器 = 有序容器(红黑树) + 无序容器(散列表) + hash_map 有序容器中: map的键值是不允许重复的 multimap的键值是允许重复 ...

  3. C++知识点30——使用C++标准库(关联容器map及其初始化,赋值,查找,添加,删除与迭代器失效)

    一.关联容器简介 关于顺序容器和关联容器的区别已经在博客https://blog.csdn.net/Master_Cui/article/details/107427911中提过 C++标准库中的关联 ...

  4. C++ 11 特性:关联容器map、set的使用

    参考文献<C++ Primer> 一.关联容器概述 1.1 关联容器的概念 关联容器支持高效的查找与访问,主要的关联容器为map与set这两个.其中map主要提供的是键-值的操作,比如字典 ...

  5. 算法训练营 训练 硬木种类、双重队列、水果(关联容器map)

    关联容器:map map的键和值可以是不同的类型,键是唯一的,每个键都对应一个值.map可被当做希哈表使用,它建立了从键(关键字)到值的映射.map是键和值的一一映射,使用时需要引入头文件#inclu ...

  6. 【c++入门(2)】关联容器map

    一.map简介 map是一个关键字-值(key - value)的集合,就是可以通过key而找到value的一种关联数组.我们称这样的数据结构为:从key到value的映射,把key映射成value. ...

  7. 理解关联容器“map”的关键点

    map有一个构造函数: map<k, v> m(b, e); <C++ Primer>解释为:"创建 map 类型的对象 m, 存储迭代器 b 和 e 标记的范围内所 ...

  8. 《Essential C++》笔记之关联容器map的使用总结

       map被定义为一对(pair)数值,其中的key通常是个字符串,扮演索引的角色,另一个数值是value. 字典便是map的一个不错实例.如果要编写一个能对文章内每个字眼的出现次数加以分析的程序, ...

  9. C++知识点32——使用C++标准库(关联容器set和multiset的初始化,赋值,查找,添加,删除与迭代器失效)

    关联容器map和multimap已经在博客https://blog.csdn.net/Master_Cui/article/details/108690877和https://blog.csdn.ne ...

最新文章

  1. 多线程断点续传及下载
  2. 5获取http请求头_获取托管者发送http请求报文的解决方案
  3. 遮挡摄像头 判断_长治一学校门口树枝遮挡信号灯,危险!
  4. numpy.cov() 计算协方差矩阵
  5. 使用Putty密钥认证机制远程登录Linux
  6. 《高性能MySQL》第5章 创建高性能的索引
  7. 常用的monkey命令
  8. t470键盘拆解_联想ThinkPad T470拆机图解教程
  9. Python中如何求分数化简
  10. 第三章 处理机调度与死锁(汤小丹版操作系统笔记) 超全超详细!!!
  11. leetcode_石头游戏合集
  12. android 手机内存64实际不到,手机拥有64G,为何用了不到1G,就显示内存不足?是谁在搞鬼?...
  13. mac怎么用u盘装系统?配备Apple T2 芯片的Mac电脑如何使用U盘装系统?
  14. 计算机主机突然断电有什么影响吗,断电对电脑的伤害大吗?有什么损伤?
  15. springboot easyexcel导出百万数据优化
  16. Redhat7(centos7)及以上防火墙完整介绍
  17. EA常见画图(类图、包图、构件图、状态图、顺序图、活动图)
  18. React面试题收集
  19. spark期末大作业RDD编程初级实践
  20. GRUB (简体中文)

热门文章

  1. 【吴恩达机器学习】学习笔记——1.3机器学习的定义
  2. SqlServer系列笔记——游标
  3. PHP自己实现var_dump函数
  4. 开源中国翻译频道链接收藏
  5. [转] Difference between Abstract classes and Interfaces
  6. 春节期间新闻回顾:思科微软多事 熊猫烧香完事
  7. python模块相互引用_python中如何相互引用两个包中的模块
  8. 解决警告“ld: warning: directory not found for option”
  9. Reporting Services 在WIN7和2008下出现“授予的权限不足,无法执行此操作。 (rsAccessDenied)”的解决办...
  10. SpringCloud:汇总(Gradle项目)