vector容器学习笔记(待续)
参阅 StanleyB.Lippman, JoséeLajoie, BarbaraE.Moo. C++ Primer中文版[M]. 电子工业出版社, 2013.
Vector特点:
类模板。
可变大小数组,支持快速随机访问。
在尾部之外的位置插入或删除元素会很慢。
Vector使用:
头文件:vector
使用时需要加入命名空间:std::vector
初始化方式:
vector<T> v1 //空对象,类型为T,执行默认初始化
vector<T> v2(v1) //v2中包含有v1所有元素的副本
vector<T> v2 = v1 //等价于v2(v1),v2中包含有v1所有元素的副本
vector<T> v3(n, val) //v3包含了n个重复的元素,每个元素的值都是val
vector<T> v4(n) //v4包含了n个重复执行初始化的对象
vector<T> v5{a,b,c,...} //v5包含了初始值个数的元素,每个元素被赋予了响应的初始值
vector<T> v5 = {a,b,c,...} //等价于v5{a,b,c,...}
操作:
v.empty() //如果 v 不含有然和元素,返回真,否则返回假
v.size() //返回 v 中元素的个数,返回类型为vector<T>::size_type,使用该类型必须指明vector<T>
v.push_back(t) //向 v 的尾端添加一个值为 t 的元素
v[n] //返回v中第n个位置上元素的引用
v1 = v2 //用v2中元素的拷贝替换v1中的元素
v1 = {a,b,c,...} //用列表中元素的拷贝替换v1中的元素
v1 == v2 //v1和v2相等 当且仅当 他们的元素数量相同 且 对应位置的元素值都相同
v1 != v2
<,<=,>,>= //以字典顺序进行比较
vector使用迭代器:
v.begin() //获取指向第一个元素的迭代器
v.end() //获取指向最后一个元素的下一个位置的迭代器
//如果容器为空,返回的是同一个迭代器,即最后一个元素的下一个位置。
v.rbegin() //获取指向最后一个元素位置的迭代器(+n运算之后往第一个元素方向移动n个位置)
v.rend() //获取指向第一个元素的前一个位置的迭代器(-n运算之后往最后一个元素方向移动n个位置)
下列操作对象 cv 为常量容器
cv.cbegin()
cv.cend()
cv.crbegin()
cv.crend()