转载自:http://blog.csdn.net/sunquana/article/details/12576729

一、定义  

(1) map<string,   int>   Map; 
    (2) 或者是:typedef   map<string,int>   Mymap; 
                      Mymap   Map;

二、插入数据 

插入数据之前先说一下pair 和 make_pair 的用法
pair是一个结构体,有first和second 两个域,可以直接访问

1 string key="sunquan";
2 int value=123456;
3 pair <string,int>  b(key, value);//这里 pair <string,string>是数据类型,后面是调带参构造方法
4 cout<<b.first<<endl; 

而make_pair是返回一个pair <类型,类型>  的数据,eg:make_pair("asa",123456);   不过还得找个pair <string,int>类型的变量来接受返回值。
下面步入正题:

(1) Map["abc"]=1;
 (2) Map.insert(pair<string,int>("c",3));
 (3)Map.insert(make_pair<string,int>("d",4));

三、修改和查找数据

(1)修改Map["sunquan"]=11111;

(2)查找数据 用Map.find(key); 可以通过键来查。

切记不要用int value=Map[key];这样会在Map中增加这个key,而value就是缺省值(int 为0,string为空字符串)。

通过方法(2),会返回迭代器的地址,key不存在的话迭代器的值为Map.end();

四、删除元素

(1)通过key删除;

(2)通过迭代器来删除;

下面看一下详细的代码:

 1 #include <iostream>  2 #include <cstdio>  3 #include <cstring>  4 #include <string>  5 #include <map>  6 using namespace std;  7   8 int main()  9 {
10     map<string,int> Map;
11     map<string,int> ::iterator it;
12     Map.insert(pair<string,int>("root",12));
13     Map.insert(pair<string,int>("scot",11));
14     for(it=Map.begin();it!=Map.end();it++)
15         cout<<it->first<<"    "<<it->second<<endl;
16     it=Map.begin();
17     Map.erase(it);//通过迭代器删除
18     string key="root";
19     Map.erase(key);//通过key删除
20
21     Map.erase(Map.begin(),Map.end());//一个迭代器,到另一个迭代器
22     //相当于  Map.clear();
23
24     for(it=Map.begin();it!=Map.end();it++)
25         cout<<it->first<<"    "<<it->second<<endl;
26     return 0;
27 }  

注:

map<int, string>::iterator it 是声明一个 迭代器
map<int, string> it 是 声明一个map容器

五、c++中map的一些方法

begin() 返回指向map头部的迭代器
    clear() 删除所有元素
    count() 返回指定元素出现的次数
    empty() 如果map为空则返回true
    end()   返回指向map末尾的迭代器

equal_range()    返回特殊条目的迭代器对

    erase() 删除一个元素
    find()  查找一个元素
    insert()插入元素
    max_size()返回可以容纳的最大元素个数
    size()  返回map中元素的个数
    swap()  交换两个map

get_allocator()  返回map的配置器
      key_comp()       返回比较元素key的函数
      lower_bound()    返回键值>=给定元素的第一个位置
      max_size()       返回可以容纳的最大元素个数
      rbegin()         返回一个指向map尾部的逆向迭代器
      rend()           返回一个指向map头部的逆向迭代器
      upper_bound()     返回键值>给定元素的第一个位置
      value_comp()      返回比较元素value的函数

C++中map的用法详解相关推荐

  1. STL 中map的用法详解

    STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...

  2. map函数作用c语言,C语言 · C++中map的用法详解

    转载自:http://blog.csdn.net/sunquana/article/details/12576729 一.定义 (1) mapMap; (2) 或者是:typedef   mapMym ...

  3. js数组中foEach和map的用法详解 jq中的$.each和$.map

    数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...

  4. JSP 中EL表达式用法详解

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...

  5. python中permute_PyTorch中permute的用法详解

    PyTorch中permute的用法详解 permute(dims) 将tensor的维度换位. 参数:参数是一系列的整数,代表原来张量的维度.比如三维就有0,1,2这些dimension. 例: i ...

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

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

  7. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  8. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  9. C#中NameValueCollection类用法详解

    C#中NameValueCollection类用法详解,1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCol ...

最新文章

  1. linux下mysql的root密码忘记解决方案
  2. 找找 Spring Event 源码中各种设计模式的使用
  3. Shell——流程控制(if、case、for、while)
  4. 【算法分析与设计】海盗分硬币问题
  5. 允许其他网络用户通过此计算机的internet连接来连_「Azure云」什么是Azure虚拟网络?...
  6. xenCenter创建镜像库和挂载硬盘
  7. 【产业互联网周报】云厂商加速布局政企市场:华为云发布七款新产品;腾讯政务战略升级;钉钉发布数字区县解决方案...
  8. premiere调色预设怎么用
  9. C# 自定义控件,日期时间选择输入插件
  10. ESP32远程OTA指令升级bin固件
  11. CSDN文章转onenote笔记(markdown)
  12. IT职场法则七条——献给正在努力奋斗的你们
  13. Android颜色RGB值
  14. 功能测试技术--因果图法
  15. 冒泡排序法究极详细讲解*
  16. 做一个官网企业网站费用大概需要多少钱?
  17. 如果重新学习计算机,你的学习路线是什么?
  18. Postgresql中如何终止正在执行的查询
  19. python怎么攻击服务器_资深黑客教python小白攻破一个网站!
  20. 活体检测 根据TPR、FPR绘制图像计算最优模型阈值

热门文章

  1. 详解linux运维工程师入门级必备技能
  2. Reset Password Windows Server 2008 r2
  3. java笔试面试题---基础部分4
  4. 自定义beans.xml文件实现Spring框架
  5. matlab 状态空间的波特图,MATLAB:对于状态空间方程的系统辨识
  6. tar、tar.gz、tar.Z、tgz、bz2、bin软件包的安装
  7. LeetCode简单题目(#27 #28 #35 #38)-2019.10.23-4道
  8. 数学之美-隐含马尔可夫模型-笔记
  9. c语言链表做歌手比赛系统,大型实验报告(歌手比赛系统)
  10. wps linux 字体_WPS Office:Linux 上的 Microsoft Office 的免费替代品 | Linux 中国