Cpp算法-STL标准库
模板
1 | template <typename T> |
例
1 | template <typename T> |
vector(不定长数组)
声明
vector<数据类型> 名;
例 vector<int> a;
简单用法
a.size();
读取大小a.resize();
改变大小a.push_back(x);
尾部添加元素xa.pop_back();
删除最后一个元素a.clear();
清空a.empty()
询问是否为空(bool类型)a[]
访问元素(可修改)
priority_queue(优先队列/堆)
声明
头文件: #include <queue>
参数: priority_queue<Type, Container, Functional>
Type
数据类型 不可省
Container
容器(vector,deque)默认vector
Functional
比较方式,默认operator <
大根堆
使用
与queue类似
小根堆
priority_queue<int, vector<int>, greater<int> > q;
使用仿函数greater<>
自定义类型(struct)
1 | struct Node |
重载operator <
1 | bool operator < (Node a, Node b) |
x值大的优先级低,排在队前
x相等,y大的优先级低
重写仿函数
1 | struct cmp |
Cpp算法-STL标准库