vector用法目录:
1、基本用法
2、vector的删除操作
3、vector的sort排序
4、翻转vector中的所有元素
5、find()函数的用法
6、vector实战(这里写的是我在最开始用vector时候犯的错误)
头文件:
#include
定义vector:
整数型: vectora;
字符型: vectora;
字符串型: vectora; (注意字符串型输入输出用cin和cout)
固定vector的大小:
vectora(105);
在容器最后存入新元素:
for(int i=0;i<10;i++){
b.push_back(i);
}
将字符数组中的数据赋值给容器:
1、遍历赋值:
char a[MAX+5];
vectorvc;
cin>>a;
int la=strlen(a);
for(int i=0;i>a;
int la=strlen(a);
vectorvc(a,a+la);
判断容器的长度:
printf("%d\n",b.size());
遍历容器中元素:
1、遍历输出
for(int i=0;i
清空容器、判断是否为空、删除最后元素:
清空容器: a.clear();//清空a中的元素
判断容器是否空:a.empty();//判断a是否为空,空则返回ture,不空则返回false
删除容器最后的元素: a.pop_back(); ///括号内不可以添加index删除指定元素
vector很好的一点就是可以实现删除操作,用它来做模拟很好实现。
1、函数使用:
vc.erase(vc.begin(),vc.end()); ///vc.erase()可以删除一个或多个元素
2、说明:
vc.erase()函数中添加的地址范围是左闭右开区间,删除内容后,如果后面还有元素,会自动补全空位。
3、注意:
///vc.erase()函数中不是直接加要删除的内容,下面例子是错误的。
vc.erase('a');
将元素从小到大的顺序排列(默认):
int c1[]={1,3,11,2,66,22,-10};
vectorc(c1,c1+7); ///赋初值
sort(c.begin(),c.end());
for(int i=0;i
重写cmp函数按要求排序:
#include
#include
#include
using namespace std;
bool cmp(int x,int y) ///cmp函数传参的类型不是vector型,是vector中元素类型,即int型
{
return x>y;
}
int main()
{
int c1[]={1,3,11,2,66,22,-10};
vector c(c1,c1+7);
sort(c.begin(),c.end(),cmp);
for(int i=0;i
vector
int d1[]={1,3,11,2,66,22,-10};
vector d(d1,d1+7);
reverse(d.begin(),d.end()); ///不是d.reverse()
for(int i=0;i
int temp1[]={ 1,3,2,4,5,0 };
vector temp(temp1,temp1+6);
vector::iterator it=find(temp.begin(),temp.end(),3);///返回的是地址
int index=&*it-&temp[0];///放入迭代器中得到容器中的位置
printf("%d\n",index);
vector没申请不能直接赋值
vectora;
for(int i=0;i<10;i++){
a[i]=5; ///vector[i]根本没被申请,所以不可以直接赋值
}
vectora;
for(int i=0;i<10;i++){
a.push_back(i); ///申请a[3]后,下面可以直接改变它的值
}
a[3]=6;
vectora(10);///先申请一个大小为10的向量后也可以直接改变a[3]的值
a[3]=6;
(上面只是vector的一部分内容,后续会逐渐补充,不足请评论)
如果对博客搭建感兴趣可以看我另一篇博客:Hexo博客框架攻略
也欢迎到我的个人博客评论、留言:XJHui's Blog