1.基本操作
1.包含头文件
#include<vector>
2.创建对象
vector<int> vec
3.尾部插入对象
vec.push_back(number)
4.使用下标访问
for(int i = 0; i < vec.size(); i++){
cout << vec[i];
}
5.使用迭代器访问
vector<int>::iterator it;
for(it = vec.begin(); it != vec.end(); it++){
cout<<*it<<endl;
}
6.任意位置插入对象
//在第四个元素前面插入number
vec.insert(vec.begin()+3,number);
7.任意位置删除对象
//删除第3个元素
vec.erase(vec.begin()+2);
//删除区间[3,6]内所有元素
vec.erase(vec.begin()+3,vec.end()+7);
8.整体大小(包含对象个数)
vec.size();
9.清空
vec.clear();
2.注意事项
vector里装载的对象不仅可以是常见的int、float、double、string等类型,还可以是自定义的结构体
3.算法(翻转与排序)
1.需要包含头文件
#include<algorithm>
2.翻转操作
reverse(vec.begin(), vec.end());
3.排序操作
//默认是按升序排列,即从小到大
sort(vec.begin(), vec.end());
对于自定义类,可通过两种方式调用sort()来进行排序
1.在类内重载”<”操作符
class Edge{
public:
int start, end, weight;
bool operator < (const Edge &e) const{
return weight < e.weight;
}
};
调用下面的函数即可升序排序
sort(vec.begin(), vec.end());
2.在类外重载函数
class Edge{
public:
int start, end, weight;
};
bool Comp(const Edge &e1, const Edge &e2)
{
return e1.weight < e2.weight;
}
调用下面的函数即可升序排序
sort(vec.begin(), vec.end(), Comp);
3.在类外重载函数改变排序方法
bool Comp(const int &a, const int &b)
{
return a > b;
}
调用下面的函数即可降序排序
sort(vec.begin(), vec.end(), Comp);