STL之vector容器用法
vector实际上是一个动态数组
它预先指向一段连续的已分配好的内存空间
1.0 头文件
#include <vector>
1.1 创建vector
vector<int> A; //声明一个int型vector
vector<int> A(10); //初始大小为10
vector<int> A(10, 1); //全部初始化为1
重点来了:
对于刚初始化的A,不能直接直接对下标赋值,如A[1]=3会报错
这时候需要resize
A.resize(5); //声明指定大小
A[1] = 3; //这样就不会报错
1.2 基本用法
A.size(); //vector大小
A.max_size(); //最大容量
A.empty(); //是否为空
A.push_back(); //末尾添加元素
A.pop_back(); //删除末尾元素
A.clear(); //清空vector
1.3 vector遍历
//法一:iterator迭代
vector<int>::iterator it;
for (it = vec.begin(); it != vec.end(); it++)
cout << *it << endl;
//法二:下标访问
for (size_t i = 0; i < vec.size(); i++) {
cout << vec.at(i) << endl;
}
//法三:使用auto
for (auto v:vec)
cout << v;
如何指定二维vector的大小?
- 先声明一个空的二维vector A;
- 接着声明一个指定大小的vector a[4];
- A.resize(5,a),即A是由五个a组成的二维vector,且a的大小是4
vector <vector<int> > A;
vector<int> a(4);
A.resize(5,a);