vector简单来说就是“长度根据需要而自动改变的数组”。在使用vector时需要添加vector的头文件#include<vector>
。
1.vector的定义
单独定义一个vector:
vector<int> a;
vector<char> b;
vector<double> c;
定义vector数组:
vector<int> arraysize[10]; //从arrarsize[0]到arraysize[9]就全部都是vector容器了
2.vector元素的访问
(1) 使用下标访问
使用下标访问时就和使用正常的数组一样。
(2) 使用迭代器访问
vector<int> a; //定义数组
vector<int>::interator it; //定义迭代器
it=a.begin(); //将迭代器指向首元素
printf("%d",*it); //输出数组的值(首元素)
for(it=a.begin();it!a.end();it++){
printf("%d",*it); //遍历数组a
}
3.vector常用函数
(1) push_back()
在vector后面添加一个元素。
vector<int> vi;
for(int i=1;i<=3;i++){
vi.push_back(i); //将1-3添加到vector中
}
(2) pop_back()
删除vector的尾元素。
vector<int> vi;
for(int i=1;i<=3;i++){
vi.push_back(i); //将1-3添加到vector中
}
vi.pop_back(); //删除vi的尾元素3
(3) size()
获得vector中元素的个数。
vector<int> vi;
for(int i=1;i<=3;i++){
vi.push_back(i); //将1-3添加到vector中
}
printf("%d",vi.size()); //返回值为3
(4) clear()
用来情空vector中所有的元素。
vector<int> vi;
for(int i=1;i<=3;i++){
vi.push_back(i); //将1-3添加到vector中
}
vi.clear();
(5) insert()
向vector任意迭代器it处插入一个元素。
vector<int> vi;
for(int i=1;i<=3;i++){
vi.push_back(i); //将1-3添加到vector中
}
vi.insert(vi.begin()+2,-1); //将-1插入到vi[2]的位置
(6) erase()
删除vector数组中迭代器处的元素和删除一个区间(左闭右开)的元素。
vector<int> vi;
for(int i=1;i<=3;i++){
vi.push_back(i); //将1-3添加到vector中
}
vi.erase(vi.begin()+3); //删除vi[3]的值
vi.erase(vi.begin()+1,vi.begin()+3); //删除vi[1]和vi[2]
网友评论