简介
vector是C++中STL的一员,也就是众所周知的向量。
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
基本操作
vector包含在vector头文件里,记得加上
#include <vector>
using namespace std;
然后就是定义、扩展元素、访问
#include <iostream>
#include <vector>
using namespace std;
int main() {
//定义int类型的空向量
vector<int> v;
//显示v的原始大小
cout << "V size = " << v.size() << endl;
//推入5个元素到v中
for (int i = 0; i < 5; i++)
v.push_back(i);
//显示现在v的大小
cout << "extended v size=" << v.size() << endl;
//访问5个元素
for (int i = 0; i < 5; i++)
cout << v[i] << ' ';
return 0;
}
结果为:
0
5
1 2 3 4 5
迭代器
简而言之,就是用迭代器访问数值。注意v.end()代表向量元素最后一个元素的下一个位置。
所以,直接上code:
//定义
vector<int>::iterator it;
//访问(迭代器是指针,别忘加*)
for (it = v.begin(); it < v.end(); it++)
cout << *it << ' ';
常用函数
sort
sort函数的第二个参数是数组或向量的最后一个元素的下一个位置,
所以sort在vector下这么用:
前提:
bool cmp(int x, int y) {
return x < y;
}
然后:
sort(v.begin(), v.end(), cmp);
结果为:
5 4 3 2 1
find
algorithm中的find函数,vector本身没有这一函数
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> c;
int main() {
for (int i = 0; i < 6; i++)
c.push_back(i);
c.find(5);
}