标准库定义了四种关联容器:map是其中之一(另外还有set、multimap、multiset)。map的元素以键-值(key-value),在学了顺序容器之后,再学习关联容器,就比较比较好理解了。

map类型,可以说是键-值对的集合,每一个键都与一个或多个值相关联。

利用它可以构造多钟函数:

map<string , int >   a;

map<char ,int>   b;

map<srting ,char >  c;

map<int,vector<int> > d;       等等

关于使用map函数的一些基本操作,不想用文字去多废话,直接看程序吧;

有关   插入数据   使用迭代器   查找    删除   获取长度     的基本操作:

 #include<iostream>
#include<map>
using namespace std;
int main(){
map<int,int> m;
//定义迭代器
map<int,int>::iterator mIter;
//插入数据方法1
m.insert(pair<int,int> (,) );
m.insert(pair<int,int> (,) );
m.insert(pair<int,int> (,) );
//法2
m.insert(map<int,int>::value_type (,) );
//法3 类似数组
m[]=; //查找与清除,均是利用到健值
map<int,int>::iterator a = m.find();
if(a!=m.end()){
m.erase(a);
}
for(mIter = m.begin();mIter!=m.end();mIter++)
cout<<mIter->first<<" "<<mIter->second<<endl;
//获取长度
cout<<m.size()<<endl;
return ;
}


值得注意一点,关联容器会自己帮你排序,排序是根据key(键)的大小,这一点它比顺序容器要好用用一些,还有就是因为这个原因,你map里面所定义的key(键)一定是要可以比较大小的类型。

修改

 #include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
map<char ,string> n;
map<char ,string>::iterator it;
map<char ,string>::value_type num1('',"xioaming");
n.insert(num1);
n[''] = "xiaoli";
//遍历修改,虽说只有俩元素
for(it=n.begin();it!=n.end();it++)
{
it->second="xiaoqiu";
cout<<it->first<<endl;
cout<<it->second<<endl;
}
return ;
}

最后在加上一个书本上的一个计算单词个数的程序

 #include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
string s;
map<string, int> counters;
while (cin >> s) // 读取单词并且计数
++counters[s];
for (map<string, int>::const_iterator it = counters.begin();it != counters.end(); ++it) {
cout << it->first << "\t" << it->second << endl;
}
return ;
}

C++ 之关联容器 map的更多相关文章

  1. C++关联容器<map>简单总结

    C++关联容器<map>简单总结 map提供大小可变的关联容器,基于关联键值高效检索元素值.当你处理键值对的数据是,都可以考虑使用map关联容器. 特点: 大小可变的关联容器,基于关联键值 ...

  2. c++中关联容器map的使用

    C++关联容器<map>简单总结(转) 补充: 使用count,返回的是被查找元素的个数.如果有,返回1:否则,返回0.注意,map中不存在相同元素,所以返回值只能是1或0. 使用find ...

  3. 关联容器(map):支持高效查找的容器,一种键值对的集合。

    #include <iostream> #include <string> #include <map> #include <vector> using ...

  4. 关联容器——map、set

    map类型通常被称为关联数组,与正常数组类似,不同之处在于其下标不必是整数.我们通过一个关键字而不是位置来查找值(键值对). 与之相对,set就是关键字的简单集合.当只是想知道一个值是否存在时,set ...

  5. STL 笔记(二) 关联容器 map、set、multimap 和 multimap

    STL 关联容器简单介绍 关联容器即 key-value 键值对容器,依靠 key 来存储和读取元素. 在 STL 中,有四种关联容器,各自是: map 键值对 key-value 存储,key 不可 ...

  6. 统计数字(关联容器map)

    题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统 ...

  7. 关联容器map(红黑树,key/value),以及所有的STL容器详解

    字符串或串(String)是由数字.字母.下划线组成的一串字符.一般记为 s=“a1a2···an”(n>=0).它是编程语言中表示文本的数据类型.在程序设计中,字符串(string)为符号或数 ...

  8. C++ 关联容器

    <C++ Primer 4th>读书笔记 关联容器和顺序容器的本质差别在于:关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素. 关联容器(Ass ...

  9. 【C++ Primer 第11章】2. 关联容器操作

    练习答案 一.访问元素 关联容器额外类型别名  key_type 此容器类型的关键字类型 mapped_type 每个关键字关联的类型,只 适用于map mapped_type 对于set,与key_ ...

随机推荐

  1. POJ 3211 Washing Clothes【01背包】

    题意:给出n种颜色,m件衣服,再分别给出m件衣服的颜色,和洗所需要的时间,dearboy和他的妹子一起洗衣服,且同种颜色的衣服不能同时洗,也不能两个人同时洗一件衣服,问洗完这m件衣服至少需要的时间 先 ...

  2. 基于Html5的爱情主题网站–表白神器(第二版)

    第二版在第一版的基础上增加了一个动态3D的白云效果背景,鼠标悬浮在页面上云朵会向屏幕Z轴方向运动,在第一人称视角看来向着云朵方向前进的,由此形成一个伪3D效果.有点绕,直接看demo就能理解了.3D白 ...

  3. 如何拷贝CMD命令行文本到粘贴板

    /********************************************************************* * 如何拷贝CMD命令行文本到粘贴板 * To copy ...

  4. Linux编程(获取系统时间)

    #include <stdio.h> #include <time.h> int main() { time_t now; struct tm *w; time(&no ...

  5. 关于jsp利用EL和struts2标签来遍历ValueStack的东东 ------> List<Map<K,V>> 以及 Map<K,<List<xxx>>> 的结构遍历

    //第一种结构Map<K,<List<xxx>>> <body> <% //显示map<String,List<Object>& ...

  6. marginCollapse之兄弟关系的DIV

    废话不说,直接上图 基本代码如下: 效果图如下: 给两个div分别加marginBottom和marginTop看一下效果 实际效果如下: 我们可以看出两个div之间的距离并不是50+50,而是只显示 ...

  7. loadrunner ---<三>循环输出关联数组

    web_reg_save_param,将Ord参数值设定为ALL,则关联函数将自动把符合条件的关联值保存到参数数组里.在本例中,假设关联值返回三条记录,则LR分别将值保存到sor_1,sor_2,so ...

  8. 用xsd验证xml

    using System; using System.Text; using System.Xml; namespace WebApplication1 { public partial class ...

  9. 删除binlog的方法

    不知道你有没有为mysql的binlog占用大量磁盘感到无奈,my.cnf里binlog的size可以设置多大做分割,但没有看到删除的配置,在mysql里show了一下variables, mysql ...

  10. pcap文件的文件头的link type

    http://www.tcpdump.org/linktypes.html Link-layer header type values LINKTYPE_ name LINKTYPE_ value C ...