vector是一种容器,它能够像容器一样存放各种类型的对象,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
1 、基本操作
(1)头文件#include<vector>.
(2)创建vector对象,vector<int> vec;
(3)尾部插入数字:vec.push_back(a);
(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。
(5)使用迭代器访问元素.
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;
(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
(8)向量大小:vec.size();
(9)清空:vec.clear()
2、代码示例
#include "stdafx.h" #include <vector> #include <algorithm> #include <iostream> using namespace std; //vector动态数组容器:向量 bool rule(const int &a,const int &b) { return a > b; } //自定义排序规则从大到小排列 int _tmain(int argc, _TCHAR* argv[]) { vector<int> ivec(5,0); ivec.push_back(5); ivec.push_back(4); ivec.push_back(9); ivec.push_back(10); ivec.push_back(21); ivec.push_back(15); cout << "int vector:" << ivec.size() << endl; for (auto it = ivec.begin(); it != ivec.end();it++) { cout << *it << " "; } cout << endl; ivec.insert(ivec.begin() + 2, 500);//在第三个元素前插入数据 for (vector<int>::size_type i = 0; i != ivec.size();i++) cout << ivec[i] << " "; cout << endl; sort(ivec.begin(), ivec.end()); //默认从小到大排序 for (auto it = ivec.begin(); it != ivec.end();it++) cout << *it << " "; cout << endl; sort(ivec.begin(), ivec.end(), rule); //根据rule定义的规则排序 for (auto it = ivec.begin(); it != ivec.end();it++) cout << *it << " "; cout << endl; ivec.erase(ivec.begin()+2); //删除第三个元素 for (vector<int>::size_type i = 0; i != ivec.size();i++) cout << ivec[i] << " "; cout << endl; ivec.erase(ivec.begin() + 6, ivec.end()); //删除下标6到最后一个元素 for (vector<int>::size_type i = 0; i != ivec.size();i++) cout << ivec[i] << " "; cout << endl; ivec.clear(); //清空所有元素 getchar(); return 0; }