您的位置:首页 > 编程语言 > C语言/C++

【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的操作

2015-03-08 10:06 387 查看
一、容器定义的类型别名

容器定义的类型别名


说明
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_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容器。

八、赋值与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的元素。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: