C++标准模板库(C++ Standard Template Library)

算法

容器

仿函数

迭代器

1.前言:

STL作为一个封装良好,性能合格的C++标准库,在算法竞赛中及其常见,灵活正确使用STL可以节省很多时间。

不过STL使用很多复杂结构实现丰富的功能,效率可能会比较低

顺序容器

2.2向量vector

#include<vector>

连续的顺序存储结构,与数组一样,但是长度可变

2.2.1常用方法

构造

vector<类型> arr(长度[,初值])

1
2
3
4
5
6
7
8
vector<int> vec; //默认构造,长度0
vector<int> arr(100); //构造长度100的int数组
vector<int> arr(1000,1); //构造长度为1000,初值为1的int数组

vector<vector<int>> vec2(5,vector<int>(6,10)); //构造二维数组,5行6列,初值10
vector<vector<vector<int>>> vec3(5,vector<int>(6,vector<int>(4,10))) //与 int vec3[5][6][4]等价,初值为10


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vector<int>arr;
arr.push_back(1);//增加元素1
arr.push_back(2);//增加元素2
arr.push_back(3);//增加元素3

std::cout<< arr.size()<<endl;

arr.pop_back(); //删除元素3
arr.clear();//清空
arr.empty();//判断是否为空,是为true;不空为false


arr.resize(5); //重新更改大小,多的默认为0,如果改短会删除

arr.resize(5,2); //长的部分默认为2

关联容器