主要包括循环队列 queue 和优先队列 priority_queue 两个容器。
queue
- push, pop, front, back
priority_queue
- push, pop, top
- 重载 “ < ” 运算符
struct poi { int id; double x, y; }; const int eps = 1e-8; bool operator <(const poi &a, const poi &b) { return a.x + eps < b.x || a.x < b.x + eps && a.y < b.y; }
- 小根堆 priority_queue<int, vector<int>, greater<int> > 或:
struct rec { int id; double value; }; bool operator <(const rec &a, const rec &b) { return a.value > b.value; }
- 懒惰删除法