关联容器——map
来源:互联网 发布:爱股轩软件下载 编辑:程序博客网 时间:2024/05/16 11:27
顺序容器是通过元素在容器中的位置来顺序访问的,关联容器则不同,是通过键来存储和读取元素的。常用的顺序容器有一下几种:
map元素通过键值来存取元素
set键的集合
multimap同一个键出现多次的map
multiset同一个键出现多次的set
下面只介绍map
1、map
(1) map<k, v>中的键的类型必须定义"<"操作。
(2) map定义的类型
map<k, v>::key_type键的类型,为const类型
map<k, v>::mapped_type值的类型
map<k, v>::value_typepair类型,第一个元素为const map<k, v>::key_type,
第二个为map<k, v>::mapped_type
(3) 访问——通过下标,副作用
map<string, int> word_count;word_count["andy_jiang"];这种方式会有副作用。当要访问的元素不存在时,将在map中会添加一个新的元素。
(4) 添加元素——下标,insert
使用下标的副作用,可以为容器添加元素。也可以直接使用insert插入元素。
word_count.insert("andy lau");
注意:insert()有三版本,需要注意insert接受单个值的返回类型。insert(e),其中,e为value_type类型,包含一个指向e.first元素的map迭代器,以及一个bool类型值,表明是否插入成功。例子——单词统计程序
map<string, int> word_count;string word;while(cin >> word){pair<map<string, int>::iterator, bool> ret = word_count.insert(make_pair(word, 1));if(!ret.second){++ret.first->second;}}
上面的例子中,ret.second为bool类型。如果pair对插入成功,则word初始化为1。已存在map容器中,则插入失败,但是要对单词出现次数增1。
(5)删除元素——erase
m.erase(k),带有一个键参数的此版本,将返回删除的元素的个数,其他版本则返回void。在map容易中,返回值只能为1或者0。
2、map的上述几点是比较容易出错和混淆的。set、multimap、multiset的操作与map大致相同。
- 关联容器——map
- 关联容器——map
- STL关联容器—map
- 【STL】关联容器 — map
- map——关联式容器
- STL2—关联容器map基础总结
- STL2—关联容器map基础总结
- STL源码剖析——关联容器之map
- C++学习笔记22——关联容器之map
- C++ map用法——关联式容器
- stl之关联容器——set,map,hashtable
- STL关联式容器之映射表——map
- STL关联式容器——set和map
- STL::map关联容器
- C++ 关联容器 map
- 关联容器Map
- ACE 关联容器 MAP
- C++MAP关联容器
- vim 常用技巧
- 读书笔记:C与C++的区别
- Android NDK开发一:配置环境
- CKEditor3.0-4.0 js版编辑器,调用取值赋值等基本应用
- 理解 pkg-config 工具
- 关联容器——map
- 百度云
- 杭电2187
- 10131 - Is Bigger Smarter? 水dp
- poj2942点双连通奇圈-二分图判断Knights of the Round Table
- 求1+2+3+.....+n的几种解法
- 列表框控件——报表显示
- 依赖注入的3种实现方式
- C++ 禁止拷贝