算法笔记(9)| STL之vector

2019-08-12  本文已影响0人  yzbkaka

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]
上一篇 下一篇

猜你喜欢

热点阅读