vector 是一个能够存放任意类型的动态数组。由于实现了很多数组的常用操作,故使用起来相当灵活舒畅。我将以每行代码加注释的方式讲解。
1.创建 vector
vector<int> vec(10) ; //声明一个初始大小为10的向量
vector<int> vec(10, 1) ; //声明一个初始大小为10且初始值都为1的向量
vector<int> b(vec) ; //声明并用向量vec初始化向量b
int n[] = {1, 2, 3, 4, 5} ;
vector<int> vec(n, n+5) ; //将数组n的前5个元素作为向量vec的初值
2. vector 属性
int n[] = {3, 5, 4, 1, 2} ;
vector<int> vec(n, n+5) ; //将数组n的前5个元素作为向量vec的初值
cout<<vec.size()<<endl; //输出向量大小
cout<<vec.max_size()<<endl; //输出向量最大容量
cout<<vec.capacity()<<endl; //输出真实大小 ,类似size
3.vector 常规操作
int n[] = {3, 5, 4, 1, 2} ;
vector<int> vec(n, n+5) ; //将数组n的前5个元素作为向量a的初值
vec.push_back(6); //在尾部添加一个数据6
vec.pop_back(); //在尾部删除数据
vec.insert(vec.begin()+2, 7); //插入操作,第一个参数是指针类型,第二个参数是插入对象
vec.erase(vec.begin()); //删除指定位置的数据
vec.clear(); //清除所有元素
4. vector 迭代器遍历
int n[] = {3, 5, 4, 1, 2} ;
vector<int> vec(n, n+5) ; //将数组n的前5个元素作为向量a的初值
vector<int>::iterator it; //遍历指针
for (it = vec.begin(); it != vec.end(); it++) //从头遍历到尾部
cout << *it << endl;
当然,也可以进行普通数组下标遍历,这里不再累述。
5. 元素排序
利用algorithm头文件的 sort 函数可以轻易实现。
int n[] = {3, 5, 4, 1, 2} ;
vector<int> vec(n, n+5) ; //将数组n的前5个元素作为向量a的初值
sort(vec.begin(), vec.end()); //采用的是从小到大的排序
vector<int>::iterator it; //遍历指针
for (it = vec.begin(); it != vec.end(); it++) //从头遍历到尾部
cout << *it << endl;
网友评论