【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的操作
2015-03-08 10:06
387 查看
一、容器定义的类型别名
二、容器的begin和end成员
三、在顺序容器中添加元素
四、容器的关系操作符
五、容器大小的操作
六、访问容器中的元素
七、删除容器中的元素
八、赋值与swap
容器定义的类型别名 | 说明 |
size_type | 无符号整数 |
iterator | 容器类型的迭代器类型 |
const_iterator | 元素的只读迭代器类型 |
reverse_iterator | 按逆序寻址元素的迭代器 |
const_reverse_iterator | 元素的只读逆序迭代器类型 |
difference_type | 有符号整数,用于存储两个迭代器的差值,可以是负数 |
value_type | 元素类型 |
reference | 元素的左值类型,和value_type&意思相同 |
const_reference | 元素的常量左值类型,和const value_type&意思相同 |
容器的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_type |
c.max_size() | 返回容器c可容纳的最多元素个数,返回类型为c::size_type |
c.empty() | 容器为空返回true,否则返回false |
c.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容器。 |
顺序容器的赋值操作 | 说明 |
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的元素。 |
相关文章推荐
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:迭代器和迭代器范围
- C++ Primer 学习笔记_29_STL实践与分析(3) --顺序容器的操作(下)
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的定义
- C++ Primer复习和学习笔记 第九章 顺序容器
- C++ Primer 学习笔记_28_STL实践与分析(2) --顺序容器的操作(上)
- c++ Primer 学习笔记 第九章----顺序容器
- 顺序容器 - 1【C++ Primer 学习笔记 - 第九章】
- 顺序容器 - 3【C++ Primer 学习笔记 - 第九章】
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:vector容器的自增长
- c++ primer(第五版)学习笔记及习题答案代码版(第九章)顺序容器
- C++ Primer学习笔记:STL顺序容器
- 《c++ primer》 第9章 顺序容器 学习笔记
- 顺序容器 - 2【C++ Primer 学习笔记 - 第九章】
- 【C++ Primer 学习笔记】chapter9 顺序容器
- C++学习笔记20——顺序容器的操作
- C++ Primer学习笔记2--c++顺序容器
- c++ primer(第五版)笔记 第九章 顺序容器(2)
- C++ Primer 学习笔记——顺序容器(1)
- 【C++ Primer 学习笔记】: 容器和算法之【顺序容器】
- C++ Primer 学习笔记——第9章:顺序容器