c++因为有了STL库所以变得比c语言简单了许多,许多容器不需要自己实现,在STL中有各种你想要的容器及函数,今天就要介绍一下c++最常用的容器之一vector的相关操作。
vector和数组一样,可以存储任意数据类型,只不过容器大小可以不提前声明。简言之vector就是一个可以动态改变大小的顺序数组。
#include
using namespace std;
vector的声明有多种方式:(数据类型以int为例)
①声明一个空向量
vector
②声明一个大小为size,初始值为0的向量
vector
③声明一个大小为size,初始值为n的向量
vector
④用另一个向量赋值
vector
⑤
ve.empty();
①返回向量中元素的个数
ve.size();
②返回当前向量所能容纳的最大元素值
ve.capacity();
③返回最大可允许的vector元素数量值
ve.max_size();
④重新设置向量大小为m
ve.resize(m)
①添加元素n到向量最后面
ve.push_back(n);
②插入元素m到向量下标为n位置
ve.insert(ve.begin()+n,m);
③从下标为n的位置插入p个元素m
ve.insert(ve.begin()+n,p,m);
①删除向量最后一个元素
ve.pop_back();
②删除下标为n的元素
ve.erase(ve.begin()+n);
③删除多个元素(下标从n到m 含n不含m[n,m))
ve.erase(ve.begin()+n,ve.begin()+m);
④清除向量
ve.clear();
①返回下标为n的元素的引用
ve.at(n);
②返回第一个元素的引用
ve.front();
③返回最后一个元素的引用
ve.back();
④返回向量头指针,指向第一个元素
ve.begin();
⑤返回向量尾指针,指向向量最后一个元素的下一个位置
ve.end();
⑥反向迭代器,指向最后一个元素
ve.rbegin();
⑦反向迭代器,指向第一个元素之前的位置
ve.rend();
①取下标
for(int i=0;i<ve.size();i++)
{
cout<<ve[i]<<"\t";
}
②使用迭代器
for(vector<int>::iterator it=ve.begin();it!=ve.end();it++)
{
cout<<*it<<"\t";
}
③反向使用迭代器
for(vector<int>::reverse_iterator it=ve.rbegin();it!=ve.rend();it++)
{
cout<<*it<<"\t";
}
num=25;
vector<int>:: iterator iter;
iter=find(ve.begin(),ve.end(),num);
if(iter==ve.end()){
cout<<num<<"在向量里"<<endl;
}else{
cout<<num<<"不在向量里"<<endl;
}
①把两个向量的所有元素进行交换
ve1.swap(ve2);
②交换向量中两个元素位置
swap(ve[i],ve[j]);
③对向量的元素进行排序(按函数cmp的规则排序) 需要导入algorithm库
sort(ve.begin(),ve.end(),cmp);
④反转向量顺序(需要导入algorithm库)
reverse(ve.begin(),ve.end());
⑤从下标为m到n反转向量(含m不含n [m,n) )
reverse(ve.begin()+m,ve.begin()+n);
写下这篇博客第一是帮助自己复习vector,另外能帮到需要的小伙伴是最好的了。