关联容器 map/set/multimap/multiset
2017-03-21 20:18
423 查看
关联容器分有序和无序。
两个主要的关联容器是map和set。
2.向map里添加元素
3.对map进行下标操作。
4.访问map中的元素
5.获取map元素各数
6.清空和判空
7.删除容器中元素
2.添加元素
3.查找容器中元素
4.遍历
5.清空判空,初始化,访问
set/multiset和map/multimap类似。
有序容器的名称们 | 简介 |
---|---|
map | 关联数组,保存键-值对 |
set | 关键字就是它的值,只保存关键字 |
multimap | 关键字可以重复出现的map |
multiset | 关键字可以重复出现的set |
无序容器的名称们 | 简介 |
---|---|
unordered_map | 哈希函数组织的map |
unordered_set | 哈希函数组织的set |
unordered_multimap | 关键字可以重复出现的哈希函数组织的map |
unoedered_multiset | 关键字可以重复出现的哈希函数组织的set |
总结map/multimap
1.定义一个mapmap<string,int> Person;
2.向map里添加元素
map<string,int> Company; string word("X"); Company.insert({word,15}); /* 这个方法返回值是 auto ret = pair<map<string,int> :: iterator,bool> ret.first是这个元素的迭代器,如果这个元素之前存在,返回旧元素的迭代器,否则返回新位置的迭代器 ret.second标志是否插入成功。如果元素之前已经存在,则insert什么也不做 */ Company["Baidu"] = 17; /* 向Company添加关键字是"Baidu",值是17的元素 */
3.对map进行下标操作。
map<string,int> Company; Company[K]; /* 返回关键字是K的元素。如果没有K这个关键字,就添加一个关键字是K的元素,对其初始化 */ Company.at(K); /* 访问关键字是K的元素,有参数检查的过程,如果没有K这个关键字,就抛出out_of_range的异常 */
4.访问map中的元素
map<string,int> Company; Company.find(K);//返回一个迭代器,指向关键字是K的元素 Company.count(K);//返回关键字为K的元素的数量 Company.lower_bound(K);//返回迭代器指向关键字不小于K的第一个元素 Company.upper_bound(K);//返回迭代器指向关键字大于K的第一个元素 Company.equal_range(K);//返回迭代器,表示关键字是K的元素的范围
5.获取map元素各数
map<string,int> Company; Company.size();
6.清空和判空
map<string,int> Company; Company.clear();//容器清空 Company.empty();//容器判空
7.删除容器中元素
map<string,int> Company; Company.erase(K);//删除建是K的元素 Company.erase(pos);//删除pos位置的元素 Company.erase(b,e);//删除从b到e的所有元素
总结set/multiset
1.构造setset<int> Grade;
2.添加元素
set<int> Grade; Grade.insert(10);//和map的insert方法同理
3.查找容器中元素
set<int> Grade; Grade.find(K); //返回一个迭代器,指向值是K的元素。如果没有,返回尾后迭代器 Grade.count(K);//返回值为K的元素的数量 Grade.lower_bound(K);//返回的迭代器指向值不小于K的第一个元素 Grade.upper_bound(K);//返回的迭代器指向值大于K的第一个元素 Grade.equal_range(K);//返回的迭代器,表示值是K的元素的范围
4.遍历
set<int> Grade; set<int> :: iterator iter = Grade.begin(); while(iter != Grade.end() ) { cout << iter -> first << " : " << iter -> second << endl; iter ++; }
5.清空判空,初始化,访问
set/multiset和map/multimap类似。
相关文章推荐
- STL关联容器MAP、SET与multimap、multiset与hashmap、hashset的区别
- 关联容器(map、set、multimap、multiset)
- STL之关联容器(set /map /multiset /multimap)
- STL之关联容器(set /map /multiset /multimap)
- 关联容器(map、set、multimap、multiset、pair、unordered_map)
- STL概览-关联容器set,multiset,map,multimap(四)
- 关联容器(set & multiset & Map& multimap)
- C++:关联容器(set,multiset,map,multimap)
- 【第10章 关联容器】hashtable, hash_map, hash_set, hash_multiset, hash_multimap基于hashtable
- STL概览-关联容器set,multiset,map,multimap
- 实例讲解,set,multiset,map,multimap关联容器
- 【STL源码剖析读书笔记】【第5章】关联式容器之hash_set、hash_map、hash_multiset和hash_multimap
- C++的STL容器之关联性容器set、multiset、map、multimap
- 【STL源码剖析读书笔记】【第5章】关联式容器之hash_set、hash_map、hash_multiset和hash_multimap
- STL 笔记(二) 关联容器 map、set、multimap 和 multimap
- 5 关联式容器-set map multiset multimap
- STL有4种联合容器(set,multiset, map, multimap)
- 【STL源码剖析读书笔记】【第5章】关联式容器之set、map、multiset和multimap
- STL 笔记(二) 关联容器 map、set、multimap 和 multimap常用函数
- 【STL源码剖析读书笔记】【第5章】关联式容器之set、map、multiset和multimap