一:vector简介
标准库类型vector表示对象的集合,属于顺序容器。
vector是类模板,使用时需要提供元素的类型来指定模板到底实例成什么样的类,例如vector<int>。
使用vector要包含头文件:
#include<vector> using std::vector;或者using namespace vector;
二:定义和初始化vector
vector<T> v1; //默认初始化,最常用的方式
vector<T> v1(v2);或者vector<T> v1=v2; //拷贝v2中的元素给v1,v2中元素的类型必须和v1中相同
vector<T> v1{a,b,c};或者vector<T> v1={a,b,c}; //列表初始化
三:vector的常用方法操作
vector<T> vec;
添加元素:vec.push_back(a); //a是T类型的元素,插入尾部
删除元素:vec.pop_back
判断是否为空:vec.empty(); //如果vec为空就返回1,不为空返回0
元素个数:vec.size(); //返回vec中元素的个数
下标访问元素:vec[n]; //返回第n个元素的引用,也就是说可以改变这个元素的值,不能用下标添加元素
拷贝:v1=v2;//用v2中的元素拷贝替换v1的元素
比较运算:== , != ,<= , >= , < , >
交换元素:swap(v1,v2);或者v1.swap(v2); //交换v1,v2中的元素
赋值:vec.assign(b,e); //b和e是两个迭代器,但不是vec中的迭代器。将这两个迭代器之间的元素替换给vec
插入元素:vec.insert(iter,"hello"); //将hello插入迭代器iter之前,也可以接受一对迭代器,insert的返回值是第一个新加入的元素的迭代器。
四:迭代器
vector的首尾迭代器begin和end:[begin , end)是左闭合区间
end指向尾后元素,也就是不存在的元素,不能访问它
cbegin和cend返回const迭代器,当不需要写访问时,应该使用c开头的版本。
解引用迭代器访问元素:*begin可以取得首元素的值