一、vector的定义
1、需要一个头文件"vector"
2、声明时和普通数据类型差不多
vector<数据类型>变量名;
笔记:
这里使用的时候,数据类型可以填入int
然后呢,这个vecto你可以把它当做一个数组来用
它只不过是一个动态数组(它会自动进行一个扩增)
int a[100]; -> 我们声明一个静态数组的时候,往往要自己填上一个不能修改的数组大小。
二、vector如何传入数据
1、只能从尾部插入数据,因为它会自动扩容
如果你头尾或者中间都能插入数据的话,那空的地方怎么办
所以它就只能从尾部插入数据
2、插入的方法
(vector)变量名.push_back(这里填入需要插入的数据);
填入的数据可以是数字或者变量,填入的数据必须与声明时定义的数据类型相匹配。
三、遍历vector动态数组
a.第一种遍历方法
首先取出它的起始位置和终点位置
然后用一个变量存起来
itBegin=a.begin();
itEnd=a.end();
例如:vector<int>::iteratoritBegin=a.begin(), itEnd=a.end();
然后用一个while循环,条件就是当头没有到尾的时候就循环
例如: while (itBegin!=itEnd) {
cout<<*itBegin<<endl;
itBegin++;
}
b.第二种遍历方法(常用)
for (vector<int>::iteratorit=a.begin(); it!=a.end(); it++) {
cout<<*it<<endl;
}
c.第三种遍历方法(需要algorithm头文件)
#include<algorithm>
voidPrintln(intval) {
cout<<val<<endl;
}
for_each (a.begin(), a.end(), Println);
四、vector中一些好玩的函数
1、插入数据
a.push_back(10);
a.push_back(110);
a.push_back(30);
这样就传入了三个数据到vector数组中
2、弹出最后一个数据
a.pop_back();
3、擦除数据
a.erase(a.begin(), a.begin() +2);
!!擦除数据能用迭代器来限定范围
4、给vector数组排序
sort(a.begin(), a.end());
!!排序也是能用迭代器来限定范围
5、还可以知道vector数组中存了多少个元素
cout<<a.size() <<endl;
6、插入数据
a.insert(a.begin(), 666);
这个括号的第一个填入迭代器加一个数字的位置(相当于插入的为位置,从0开始),后一个空就是填入需要插入的数据
!!这个插入数据不能空格插入,所以在插入数据的位置时,最好判断一下是否越界了,越界则会宕机。
7、清空vector数组
a.clear();