Maps是一种关联式容器,包含“关键字/值”对。 Multimaps和maps很相似,但是MultiMaps允许重复的元素。

  简单介绍:

1、声明,首先包含头文件 “map”

    map <int,string> test1,test2;//
    map <int,string>::iterator it1,it2;//迭代器multimap <int,string> test3;multimap <int,string>::iterator it3;

2、插入数据,可使用三种方法:

  第一种,使用pair函数

   test1.insert(pair<int,string>(1,"song"));test1.insert(pair<int,string>(2,"zhang"));test1.insert(pair<int,string>(3,"wang"));

  第二种,使用value_type类型

   test1.insert(map<int,string>::value_type(4,"qian"));test1.insert(map<int,string>::value_type(5,"sun"));

  第三种,使用数组方式,,可以覆盖原来数据,前两中不能改变数据,如果存在则插入失败

    test1[6] = "mao";test1[7] = "guang";

  前两种情况,插入失败后可以通过以下方法检查

//测试是否插入成功pair<map<int,string>::iterator,bool> insert_Pair;insert_Pair = test1.insert(pair<int,string>(1,"Replace"));if (insert_Pair.second == true){cout<<"insert successfully"<<endl;}else{cout<<"insert failure"<<endl;}

3、遍历数据,可使用以下几种方法

  第一,正向遍历

    for (it1 = test1.begin();it1 != test1.end();it1++){cout<<it1->first<<"-----" << it1->second<<endl;}

  第二,逆向遍历,使用反向迭代器

  cout<<"反向迭代器"<<endl;//rbegin()指向最后一个元素,rend()指向第一个元素前面,这里++是指往前走一个位置map<int,string>::reverse_iterator reverseIte;for (reverseIte = test1.rbegin();reverseIte != test1.rend();reverseIte++){cout<<reverseIte->first<<"-----" << reverseIte->second<<endl;}

  第三,使用数组进行遍历

  //使用数组方式进行遍历for (int i = 1;i <= test1.size();i++){cout<<i<<"-----"<<test1[i]<<endl;}

4、查找和判断

  第一,使用count进行判断

    //count,判断int i=1;for (it1 = test1.begin();it1 != test1.end();i++,it1++){cout<<i;if (test1.count(i)>0)//元素存在
        {cout<<"is a element of map"<<endl;}else{cout<<"is not a element of map"<<endl;}}

  第二,使用find判断

  it2 = test1.find(6);//查找if (it2 != test1.end()){cout<<"find it:"<<it2->first<<"---"<<it2->second<<endl;}else{cout<<"not find it"<<endl;}

5、删除元素

    //删除元素it2  = test1.find(2);test1.erase(it2);

这些操作基本上都和set的差不多,好多函数一模一样。

  

转载于:https://www.cnblogs.com/songliquan/p/3341210.html

STL学习笔记5--map and multimap相关推荐

  1. C++ STL学习笔记

    C++ STL学习笔记一 为何要学习STL: 数据结构与算法是编程的核心,STL中包含各种数据结构和优秀的算法,确实值得深入学习,本文中虽然着重使用,但希望有心的朋友能多看看相关数据结构的实现,对于C ...

  2. C++STL学习笔记(4) 分配器(Allocator)

    在前面的博客<C++ STL学习笔记(3) 分配器Allocator,OOP, GP简单介绍>中,简单的介绍了分配器再STL的容器中所担当的角色,这一节对STL六大部件之一的分配器进行详细 ...

  3. C++ STL学习笔记(3) 分配器Allocator,OOP, GP简单介绍

    继续学习侯捷老师的课程! 在前面的博客<C++ STL学习笔记(2) 容器结构与分类>中介绍了STL中常用到的容器以及他们的使用方法,在我们使用容器的时候,背后需要一个东西支持对内存的使用 ...

  4. STL学习笔记(一)

    2019独角兽企业重金招聘Python工程师标准>>> 1. 容器(Containers) 容器分为两类: 序列式容器(Sequence containers),此乃可序群集,其中每 ...

  5. python map zip_Python学习笔记(九) map、zip和filter函数

    这篇文章主要介绍 Python 中几个常用的内置函数,用好这几个函数可以让自己的代码更加 Pythonnic 哦 1.map map() 将函数 func 作用于序列 seq 的每一个元素,并返回处理 ...

  6. C++语言基础 —— STL —— 容器与迭代器 —— map 与 multimap

    [概述] map 和 multimap 是映射数据容器,两者均定义与 <map> 头文件中,其所有元素都是 pair,pair 的第一个元素被视为键值,第二个元素为实值. 他们是基于某一类 ...

  7. STL学习笔记-- multiset

    multiset 多重集合容器 与 set 集合容器一样, multiset 多重容器也使用红黑树组织元素数据,只是 multiset 容器允许将重复的元素键值插入,而 set 容器则不允许.mult ...

  8. C++STL标准库学习笔记(六)multimap

    目录 前言: 正文 1.1multimap的用法 1.2 multimap的应用 后记: 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用 ...

  9. C++ STL学习笔记 : 2. unordered map 容器

    本文中,简单总结一下使用unordered map 的心得.unordered_map容器属于STL中关联表的一种,常用的map容器与unordered_map容器在使用中有着很大程度的相同点,在之后 ...

最新文章

  1. [How TO]-如何使用Sphinx编写漂亮的文档
  2. [cocoapods]安装cocoapods
  3. SAP传输停止错误:Test call of transport control program (tp) ended with return code 0208!
  4. linux --开机自动挂载硬盘【转】
  5. oauth2 access_denied 不允许访问_OAuth 2 是什么-入门介绍
  6. 4-数组、指针与字符串1.4-动态内存分配
  7. Linux IPC实践(4) --System V消息队列(1)
  8. openGauss持续构筑企业级内核能力,使能行业技术创新
  9. 英语学习笔记2019-12-3
  10. 我学习设计模式的一些所想所得
  11. python对象回收_python 对象引用,可变性,垃圾回收
  12. oops程序是什么意思_OOPS中的抽象是什么?
  13. 1.android源码编译android-7.1.2_r39
  14. 如何评价伊隆·马斯克创办的脑机接口公司 Neuralink ?
  15. 【金融科技前沿】金融实人认证+基于百度AI的身份证图片批量OCR识别
  16. mybatis-plus自定义sql注入器
  17. 若依前后端分离框架学习-1:前端引入
  18. python爬取微信小程序(实战篇)_爬虫爬取微信小程序
  19. Win10应用小技巧
  20. iOS保存图片到相册

热门文章

  1. 『ACM-算法-二分法』在单调递增序列a中查找小于等于x的数中最大的一个(即x或x的前驱)
  2. 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的区别
  3. 循环神经网络 递归神经网络_了解递归神经网络中的注意力
  4. 贷款机构如何审核个人征信?
  5. 逾期之后还能贷款吗?
  6. Linux : find big file in the all directories
  7. 徐坤用话剧震了我们一道
  8. 将excel转为python的字典_python读取excel表并把数据转存为字典
  9. jap和java有关系吗_hibernate与jpa有什么区别和联系?
  10. python画图小猪佩奇_吊炸天!Python 20秒画出小猪佩奇