c++ STL vector初步学习

/*vector(向量):是一种顺序容器,,动态数组,事实上和数组差不多,但它比数组更优越。
一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。
而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,
它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。
2. vector声明及初始化
vector<int> vec;        //声明一个int型向量
vector<int> vec(5);     //声明一个初始大小为5的int向量
vector<int> vec(10, 1); //声明一个初始大小为10且值都是1的向量
vector<int> vec(tmp);   //声明并用tmp向量初始化vec向量
vector<int> tmp(vec.begin(), vec.begin() + 3);  //用向量vec的第0个到第2个值初始化tmp
int arr[5] = {1, 2, 3, 4, 5};  
vector<int> vec(arr, arr + 5);      //将arr数组的元素用于初始化vec向量
  //说明:当然不包括arr[4]元素,末尾指针都是指结束元素的下一个元素,
 //这个主要是为了和vec.end()指针统一。
10 vector<int> vec(&arr[1], &arr[4]); //将arr[1]~arr[4]范围内的元素作为vec的初始值
3.常用操作
v1.push_back()   //在数组的最后添加一个数据
v1.pop_back()    //去掉数组的最后一个数据
v1.front()     //返回第一个元素(栈顶元素)
v1.begin()           //得到数组头的指针,用迭代器接受
v1.end()             //得到数组的最后一个单元+1的指针,用迭代器接受
v1.clear()        // 移除容器中所有数据
v1.empty()         //判断容器是否为空
v1.erase(pos)        //删除pos位置的数据
v1.erase(beg,end)// 删除[beg,end)区间的数据
v1.size()         //回容器中实际数据的个数
v1.insert(pos,data) //在pos处插入数据

猜你喜欢

转载自www.cnblogs.com/QingyuYYYYY/p/11620849.html