map翻译为映射。先讨论map的应用场景:
我们开一个数组,int a[100],随后赋值,a[10]=20,这本质上就是一种int到int的映射,即将10映射到20。而double、char类型的数组本质上都是int到double、char的映射。可是,数组有它的局限性,即它只能将int映射到其他种类,如果我想把一个字符串映射到整型,数组就无能为力了。为此,伟大的计算机先驱者们发明了map来解决这个问题!

map可以构建任何两个类型(包括容器)的映射。下面来介绍map的定义和常用用法:
map的定义:

map<char,int> mp;

<>内的两个类型不限,你甚至可以向里面放容器。

map的访问方法:

1.通过下标访问。
如:

map<char,int> mp;
mp['c']=3;
printf("%d",mp['c']);

输出结果为3。

这里需要注意,map中的键是唯一的。

2.通过迭代器访问。

map<char,int>::iterator it=mp.begin();
printf("%c %d\n",it->first,it->second);

其中,it->first用来访问键,it->second用来访问值。

好,知道了这些,我们再来介绍一些map常用的函数。

1.find(key),返回键为key的映射的迭代器。
2.erase(),可用来删除单个元素,其参数可为iterator或key;亦可以用来删除区间内所有元素,第一个参数为要删除的区间的起始迭代器,第二个参数为要删除的区间的末尾迭代器的下一个地址。
3.size(),返回map映射的对数。
4.clear(),清空map中所有元素。

c++中的stl容器——map的介绍与常用用法相关推荐

  1. STL中的模板类map的介绍

    STL中的模板类map的介绍 佟强 2008.11.5 map的元素是由key和value两个分量组成的对偶(key,value).key是键,value是与键key相关联的映射值.元素的键key是唯 ...

  2. C++ STL容器 —— map/multimap 用法详解

    C++ STL容器 -- map/multimap 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别 ...

  3. 【小白学习C++ 教程】二十二、C++ 中的STL容器stack、queue和map

    @Author:Runsen STL 中的栈容器是一种容器适配器.在栈容器中,元素在一端插入并在同一端删除. stack 为了实现堆栈容器,我们需要在我们的程序中包含头文件<stack>. ...

  4. STL容器-Map and Pair(一)

    map介绍: 1.map翻译为映射,是STL中的常用容器也是STL的一个关联容器,它提供一对一的数据处理能力.什么是一对一的数据处理能力呢,像我们查字典,我们可以从开头处找到这个单词对应的页数,从而通 ...

  5. 【小白学习C++ 教程】二十一、C++ 中的STL容器Arrays和vector

    @Author:Runsen C++的标准模板库(STL)是提供数组.向量.队列等数据结构的模板类的集合.STL是由容器.算法.迭代器组成的库. 容器 容器存储对象和数据.它们基本上是基于模板的泛型类 ...

  6. C++ STL容器 map禁止自动排序

    背景:key-value形式的数据,已经使用了map存储,后来要求读取时的顺序要和插入的顺序一致   方案一.再定义个数组,按顺序保存key (推荐)   方案二.map更换为unordered_ma ...

  7. c++ hashset的用法_c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例

    c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...

  8. vector 作为dll 接口参数_DLL中传递STL参数,vector对象作为dll参数传递等问题(转)...

    STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下面是详细解释. 原因分析:一句话-----如果 ...

  9. DLL中传递STL参数(如Vector或者list等)会遇到的问题[转载]

    最近的一个项目中遇到了调用别人的sdk接口(dll库)而传给我的是一个vector指针,用完之后还要我来删除的情况.这个过程中首先就是在我的exe中将其vector指针转为相应指针再获取vector中 ...

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

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

最新文章

  1. 2016.4.2 动态规划练习--讲课整理
  2. java signature 性能_Java常见bean mapper的性能及原理分析
  3. 如何帮助谷歌鉴别内容重复的网页
  4. 使用action framework 实现order change时自动发送邮件
  5. 乾坤大挪移,巧迁数据到proxmox平台
  6. PS(留学动机)的妙用——扭转你的劣势
  7. 运放组成的吉他放大电路_如何通过5个步骤构建开放式硬件吉他放大器
  8. 和平之翼代码生成器 SMEU 版 4.0.0 RC 宝船候选版发布
  9. 《信息安全工程》读书笔记
  10. 中国能源互联网行业十四五前景规划与发展战略格局分析报告2022-2028年版
  11. logistic回归分析优点_干货——检验人最常用的统计学分析方法梳理(二)
  12. 为手机游戏而生的Linux 发行版
  13. leaflet加载谷歌影像地图、天地图影像地图、天地图影像注记
  14. gitlab hook declined错误
  15. 国内云服务器提供商排名(仅供参考)
  16. 深度强化学习-策略梯度算法深入理解
  17. 生鲜电商纷纷传上市,但赛道并不性感
  18. 转: Github上关于iOS的各种开源项目集合
  19. 【知识兔】Excel教程:文本转数值的这些套路,你都会了吗?
  20. MATLAB矩阵生成

热门文章

  1. 如何 把 laravel model 的主键修改为字符串类型
  2. js || 和 的高级运用
  3. SQL Server MYSQL 检查点的好处
  4. Ubuntu下mysql修改字符集为utf8
  5. Lync部署学习笔记(一)
  6. [不得不转载]一个时代的结束:微软盖茨的人生掠影
  7. 或许是介绍Android Studio使用Git最详细的文章
  8. 【SpringMVC】@Controller 和 @RestController 区别
  9. 百度图表echart使用心得
  10. Jenkins实现生产环境部署文件的回滚操作(Windows)