C++ Primer 学习笔记——关联容器的操作
2016-02-29 15:25
260 查看
pair类型
定义在 utility头文件中
pair是一个用来生成特定类型的模板,类中存储2个相关的成员变量
map中每个元素就是一个pair对象
构造函数
创建 Pair 类的未初始化的新实例。
使用指定的对象对初始化 Pair 类的新实例。
类别名称
一个map的value_type是一个pair,可以改变pair的成员函数,但是不能改变关键字成员的值(const)
关联容器的迭代器
first() end()
添加元素
insert()
添加单一的元素时候返回pair
pair是first的迭代器,指向具有给定关键字的元素(pair),(指向自己的指针)
second是一个bool值,插入成功时候返回true;
删除元素
erase(key_type)
删除一个关键字(包括关键字对应的所有值),返回删除的元素数量
map的下标操作
c[k]
返回关键字为k的元素,如果k不存在,则添加一个关键字为k的元素,对其值进行初始化
c.at[k]
c[mapped_type] 返回 key_value
访问元素
find(k) 对不允许重复关键字的容器,返回一个指向关键字为k的元素的迭代器,如果k不在容器内,返回尾后迭代器
count(k) 返回关键字等于k的元素数量,对于map,set,返回的只有1或0
lower_bound(k)返回一个迭代器,指向第一个具有关键字k的元素
upper_bound(k)。。。。。最后一个具有。。
不存在时候,都返回尾后迭代器
equal_range(K)
返回一个pair,其中first返回最前面匹配的元素迭代器,second返回最后面。。。
定义在 utility头文件中
pair是一个用来生成特定类型的模板,类中存储2个相关的成员变量
map中每个元素就是一个pair对象
pair<T1,T2> p(v1,v2);//v1是first,v2是second p.first p.second
构造函数
Pair()
创建 Pair 类的未初始化的新实例。
Pair(Object^, Object^)
使用指定的对象对初始化 Pair 类的新实例。
类别名称
map : key_type mapped_type value_type // 相当于pair<const key_type,mapped_type> set: key_type value_type
一个map的value_type是一个pair,可以改变pair的成员函数,但是不能改变关键字成员的值(const)
关联容器的迭代器
first() end()
添加元素
insert()
//对set insert(p,q); insert(a);a为一个初始化器列表 //对map insert(pair<T1,T2>(v1,v2)); insert(make_pair(v1,v2));
添加单一的元素时候返回pair
pair是first的迭代器,指向具有给定关键字的元素(pair),(指向自己的指针)
second是一个bool值,插入成功时候返回true;
map < string, size_t> words; string word; while (cin >> word) { auto rat = words.insert({ word, 1 });//rat是pair类的对象 if (!rat.second)//如果单词已经存在,insert什么也不做,rat.second返回0, ++(rat.first->second);//rat.first是一个迭代器指向rat本身 }
删除元素
erase(key_type)
删除一个关键字(包括关键字对应的所有值),返回删除的元素数量
map的下标操作
c[k]
返回关键字为k的元素,如果k不存在,则添加一个关键字为k的元素,对其值进行初始化
c.at[k]
c[mapped_type] 返回 key_value
访问元素
find(k) 对不允许重复关键字的容器,返回一个指向关键字为k的元素的迭代器,如果k不在容器内,返回尾后迭代器
count(k) 返回关键字等于k的元素数量,对于map,set,返回的只有1或0
lower_bound(k)返回一个迭代器,指向第一个具有关键字k的元素
upper_bound(k)。。。。。最后一个具有。。
不存在时候,都返回尾后迭代器
equal_range(K)
返回一个pair,其中first返回最前面匹配的元素迭代器,second返回最后面。。。
相关文章推荐
- C++开发人脸性别识别教程(17)——辅助功能之人脸批量分割
- Python重写C语言程序100例--Part9
- VC++修改电脑系统时间
- 十六进制与ASCII码的互转(C语言)
- C/C++中产生随机数(rand,srand用法)
- C++ DirectX 游戏开发初级视频教程 21 资源下载链接
- 冒泡、选择和快速排序算法的C++实现
- C++常用的智能指针
- C++的CRC32校验代码
- 没事写点啥(一)——C++扫雷
- C语言循环队列的表示与实现实例详解
- C语言深度剖析-----C语言中的字符串
- C语言中EOF是什么意思?
- C++: int和string相互转换
- c++反汇编与逆向分析--小结
- 20160229 VC++中使用ADO连接数据库
- c++函数指针以及回调函数
- Boost 学习之算法篇 hex
- C++调试时的错误例子及解决方法
- c语言命名规则