C++ STL Map
来源:互联网 发布:中国税务网络大学app 编辑:程序博客网 时间:2024/06/06 08:48
1.定义并构造Map
map<对象1,对象2> 变量名;
例如map<string, Student> StudentBook;
2.使用insert插入数据
(1)pair<iterator, bool> insert( const pair<KEY_TYPE, VALUE_TYPE> &val )
该pair的模板参数就是该map容器的键值类型和值的类型。返回值也是一个pair,不过其模板参数是迭代器和bool,在这个返回值中,迭代器表示的是插入的数据在容器中的位置,bool值表示的是是否插入成功。
(2)iterator insert( iterator pos, const pair<KEY_TYPE, VALUE_TYPE> &val )
也是表示在容器中插入一个pair,不过该方法给出一个表示目标位置的迭代器(第一个参数)。其目的是在目标位置上插入这个pair。该方法的返回值也是一个迭代器,表示这个pair实际插入的位置。
(3)void insert( input_iterator start, input_iterator end );
注意:如果向迭代器中插入一个已有的键值对,则不能成功插入数据,而返回值的迭代器成员执行拥有该键值的元素。
将一个由输入迭代器的区间插入到容器中,该迭代器去接是左闭右开的。
例如:
map<int, int> m;
typedef pair<int, int> VALUE;
typedef map<int, int>::iterator MAP_ITER;
typedef pair< MAP_ITER, bool > RESULT_PAIR;
//(1)
m.insert( VALUE( 0, 1) );
RESULT_PAIR res = m.insert( VALUE( 1,11) );
//(2)
MAP_ITER iter = m.insert( m.begin(), VALUE( 2, 12) );
//(3)
map <int, int> m_copy;
m_copy.insert( m.begin(), m.end() );
3.查找数据
(1)使用运算符“[ ]”,但是如果[ ]引用的目标元素不存在,则会生成一个。
(2)find()函数
iterator find(const key_type& _ _x);
const_iterator find(const key_type& _ _x) const;
例如:
map<int, int> m;
m[0] = 10;
m[1] = 11;
m[2] = 12;
typerdef map<int, int>::iterator MAP_ITER;
typerdef map<int, int>::const_iterator CONST_ITER;
MAP_ITER iter = m.find( 5 );
//如果iter == m.end() ,则表示没有找到
iter = m.find(1);
iter->second = 13; //重新赋值
(3)除了find()以外,还有lower_bound()和upper_bound()。
lower_bound() 接收一个键值类型的参数。如果存在这个键值,则返回该元素的迭代器,如果不存在,则返回一个迭代器指向第一个键值比该参数大的元素。
4.删除数据
(1)size_type erase(const key_type& _ _x);
删除一个键值,如果没有该键值,返回0
(2)void erase(iterator _ _position);
删除一个迭代器指定的元素
(3)void erase(iterator _ _first, iterator _ _last);
删除迭代器区间表示的容器区间
示例简答,就不列举了。
5.其他操作
- [c++]stl map
- C++STL:map概述
- C++stl map学习
- C++STL之map
- 【C++】STL--MAP
- [C++]STL之map
- C++STL 之map
- C++STL之map
- [C++] STL里面的map
- 1.c++-stl map详解
- C++STL之map学习
- Codeforces 4C (STL map)
- C++STL (vector,list,map)
- C++STL之 map详解
- [C++]HashMap实现STL map
- C++STL之map学习
- c++stl中的map/multimap
- [C++] STL Map的简单用法
- 在文件夹右键选项中加入cmd命令
- 专注于操作系统13之LDT
- Asp.Net GridView點擊標題排序方法
- SQL Server 2008镜像小结
- 第2周实验报告2
- C++ STL Map
- 简述个人知识体系建立
- DSP总结之C语言环境
- Top Ten Web Hacking Techniques of 2011
- FPGA与CPLD区别
- java security week
- linux学习问题
- 导入Excel数值读不到,找不到可安装的 ISAM错误!(导入Excel常见错误)
- HTML学习笔记02(HTML 标签)