【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的操作
来源:互联网 发布:熟shou 知乎 编辑:程序博客网 时间:2024/05/21 01:30
一、容器定义的类型别名
容器定义的类型别名
说明
size_type
无符号整数
iterator
容器类型的迭代器类型
const_iterator
元素的只读迭代器类型
reverse_iterator
按逆序寻址元素的迭代器
const_reverse_iterator
元素的只读逆序迭代器类型
difference_type
有符号整数,用于存储两个迭代器的差值,可以是负数value_type
元素类型
reference
元素的左值类型,和value_type&意思相同
const_reference
元素的常量左值类型,和const value_type&意思相同
二、容器的begin和end成员
容器的begin和end操作
说明
c.begin()返回迭代器,指向容器c的第一个元素c.end()
返回迭代器,指向容器c的最后一个元素的下一个位置
c.rbegin()
返回逆序迭代器,指向容器c的最后一个元素c.rend()
返回逆序迭代器,指向容器c的第一个元素的前一个位置
三、在顺序容器中添加元素
在顺序容器中添加元素的操作
说明
c.push_back(t)
在容器c的尾部添加元素,元素值为t。返回void类型。
c.push_front(t)
在容器c的前端添加元素,元素值为t。返回void类型。只适用于list和deque容器,vector容器没有此操作。
c.insert(p, t)
在迭代器p所指向的元素前面插入值为t的元素。返回指向新添加元素的迭代器。
c.insert(p, n, t)
在迭代器p所指向的元素前面插入n个值为t的元素。返回void类型。
c.insert(p, b, e)
在迭代器p所指向的元素前面插入由迭代器b和e标记范围内的元素。返回void类型。
四、容器的关系操作符
关系操作符
!=
判定依据
==!=
如果两个容器具有相同的长度并且所有元素都相等,则这两个容器相等;否则,就不等。
>
<
根据两个容器中的第一个不相等的元素,该元素的大小就是容器的大小;特别地,如果一个容器是另一个容器的初始子序列,则短的容器小于长的容器。五、容器大小的操作
顺序容器的大小操作
说明c.size()
返回容器c中的元素个数,返回类型为c::size_typec.max_size()
返回容器c可容纳的最多元素个数,返回类型为c::size_type
c.empty()
容器为空返回true,否则返回falsec.resize(n)
调整容器c的容量,使其能够容纳n个元素。如果n小于c.size(),则删除多出来的元素;否则,添加采用值初始化的新元素。c.resize(n, t)
调整容器c的容量,使其能够容纳n个元素。如果n小于c.size(),则删除多出来的元素;否则,添加采用值为t的新元素。
六、访问容器中的元素
顺序容器元素的访问操作
说明c.back()
返回容器c的最后一个元素的引用。如果容器为空,则该操作未定义。c.front()
返回容器c的第一个元素的引用。如果容器为空,则该操作未定义。
c(n)
返回下标为n的元素的引用。如果n<0或者n>=c.size(),则该操作未定义,会产生run-time error。只适用于vector和deque容器。c.at(n)
返回下标为n的元素的引用。如果n<0或者n>=c.size(),则该操作未定义,会抛出out_of_range异常。只适用于vector和deque容器。七、删除容器中的元素
顺序容器元素的删除操作
说明c.erase(p)
删除迭代器p所指向的元素;返回一个迭代器,指向被删除元素后面的元素。c.erase(b, e)
删除迭代器b和e所标记范围内的所有元素;返回一个迭代器,指向被删除元素段后面的元素。
c.clear()
删除容器c内的所有元素;返回void。c.pop_back()
删除容器c的最后一个元素;返回void。如果c为空容器,则该函数未定义。c.pop_front()
删除容器c的第一个元素;返回void。如果c为空容器,则该函数未定义。只适用于list或者deque容器。
八、赋值与swap
顺序容器的赋值操作
说明c1 = c2
删除容器c1的所有元素,然后将c2的元素复制给c1。c1和c2的类型(容器类型和元素类型)必须相同。c1.swap(c2)
交换容器c1和c2的内容。
c.assign(b, e)
重新设置c的元素:将迭代器b和e标记的范围内的所有元素复制到c中。b和e必须不是指向c中元素的容器。c.assign(n, t)
重新设置c的元素:n个值为t的元素。 0 0
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的操作
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的定义
- c++primer学习笔记 ( 第九章 顺序容器)
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:vector容器的自增长
- C++primer 第九章:顺序容器----字符串
- 【c++ primer 笔记】第九章 顺序容器
- C++primer第五版笔记-第九章顺序容器
- 顺序容器 - 1【C++ Primer 学习笔记 - 第九章】
- 顺序容器 - 2【C++ Primer 学习笔记 - 第九章】
- 顺序容器 - 3【C++ Primer 学习笔记 - 第九章】
- c++ Primer 学习笔记 第九章----顺序容器
- C++ Primer复习和学习笔记 第九章 顺序容器
- C++Primer学习笔记第九章(9/18)顺序容器-(上)
- C++Primer学习笔记第九章(9/18)顺序容器-(下)
- 《C++primer(第五版)》学习之路-第九章:顺序容器
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:迭代器和迭代器范围
- C++primer【笔记】 顺序容器
- 【C++primer学习笔记】第9章 顺序容器
- Win8.1无法安装msi软件提示2502、2503错误怎么解决?
- 多态总结
- KMP算法/字符串匹配算法
- JAVA单例模式编程详解
- design_pattern_singleton
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的操作
- Linux下面如何安装Django
- Machine Learning PCA
- [Hb-XVII] 计算机的抽象层次-简 使用寄存器 使用内存空间 程序执行过程 使用main函数规定 不定参数函数机制 C
- URAL 1885. Passenger Comfort(数学啊 )
- 会议印象
- pat 1032. Sharing (25)
- TCP Socket 简单编程 in java
- android 强制关闭软键盘