STL学习(六)--map/multimap用法详解
2016-10-20 16:27
561 查看
两者的内部结构都是用的是平衡二叉树,区别在于multimap允许重复元素而map不允许。
map和multimap**根据元素的key**自动对元素进行排序,要修改元素的key必须先删除拥有该key的元素,然后插入拥有新的key/value的元素
常用函数:
(1)构造函数和析构函数
(2)大小判空函数
(3)增加删除函数(注意insert一般用pair)mymap.insert(it,pair
关于删除函数的应用
如果想往map/multimap中修改一个映射的值,应先插入一个新映射,再把与修改的映射删除
4.遍历函数
5.操作函数
const_iterator lower_bound(const Key& key);//返回键值小于等于key的迭代器指针
6.特殊函数
reference operator[](const Key& k);仅在单映射map类中,可以以数组的形式给映射添加键值对,并可返回值的引用
实例:
map和multimap**根据元素的key**自动对元素进行排序,要修改元素的key必须先删除拥有该key的元素,然后插入拥有新的key/value的元素
常用函数:
(1)构造函数和析构函数
(2)大小判空函数
(3)增加删除函数(注意insert一般用pair)mymap.insert(it,pair
#include <iostream> #include <map> using namespace std; int main() { map<char, int> mymap; mymap.insert(pair<char, int>('a', 10)); mymap.insert(pair<char, int>('z', 200)); pair<map<char, int>::iterator, bool> ret; ret = mymap.insert(pair<char, int>('z', 500)); if (ret.second == false) { cout << "element 'z' already existed"; cout << "with a value of " << ret.first->second << '\n'; } map<char, int>::iterator it = mymap.begin(); mymap.insert(it, pair<char, int>('b', 300)); mymap.insert(it, pair<char, int>('c', 400)); map<char, int> anothermap; anothermap.insert(mymap.begin(), mymap.find('c')); cout << "mymap contains :\n"; for (it = mymap.begin(); it != mymap.end(); it++) { cout << it->first << "=>" << it->second << '\n'; } cout << "anothermap contains :\n"; for (it = anothermap.begin(); it != anothermap.end(); it++) { cout << it->first << "=>" << it->second << '\n'; } return 0; }
关于删除函数的应用
#include <iostream> #include <map> using namespace std; int main() { map<char, int> mymap; map<char, int>::iterator it; mymap['a'] = 10; mymap['b'] = 20; mymap['c'] = 30; mymap['d'] = 40; mymap['e'] = 50; mymap.insert(pair<char, int>('f', 60)); cout << "initial mymap contains :\n"; for (it = mymap.begin(); it != mymap.end(); it++) { cout << it->first << "=>" << it->second << '\n'; } it = mymap.find('b'); mymap.erase(it); mymap.erase('c'); it = mymap.find('e'); mymap.erase(it, mymap.end()); //删除的是it到end()之间的元素 cout << "now mymap contains :\n"; for (it = mymap.begin(); it != mymap.end(); it++) { cout << it->first << "=>" << it->second << '\n'; } return 0; }
如果想往map/multimap中修改一个映射的值,应先插入一个新映射,再把与修改的映射删除
4.遍历函数
5.操作函数
const_iterator lower_bound(const Key& key);//返回键值小于等于key的迭代器指针
6.特殊函数
reference operator[](const Key& k);仅在单映射map类中,可以以数组的形式给映射添加键值对,并可返回值的引用
实例:
map<char, int> mymap; mymap['a'] = 10; mymap['b'] = 20; mymap['c'] = 30; mymap['d'] = 40;
相关文章推荐
- C++学习 STL之六:map/multimap用法详解
- STL学习之十:map和multimap用法示例
- STL之六:map/multimap用法详解
- STL之六:map/multimap用法详解
- STL:map/multimap用法详解
- STL之六:map/multimap用法详解
- 【用法详解】C++--STL之map的用法详解与学习心得
- STL:map/multimap用法详解
- STL:map/multimap用法详解
- STL之六:map/multimap用法详解
- STL中Map用法详解
- [转] STL中map用法详解
- STL中map用法详解
- STL中map用法详解 (转)
- STL中map用法详解
- STL中的map用法详解
- STL中map用法详解
- STL中map用法详解
- STL中的map用法详解
- STL中map用法详解