函数
sort
作用:将数组内容排序。
头文件:algorithm
unique
作用:将排好序的数组去重。
头文件:algorithm
next_permutation & prev_permutation
作用:求数组内容全排列的上一个/下一个。
头文件:algorithm
容器
queue
STL自带队列。
头文件:queue
手写queue:
struct queue
{
int h,t;
int a[400001];
void clear() {h=1,t=0;}
void push(int n) {a[++t]=n;}
int front() {return a[h];}
void pop() {h++;}
bool empty() {return h>t;}
}q;
priority_queue
STL自带优先队列,可代替堆。
头文件:queue
stack
STL自带栈。
头文件:stack
手写栈:
struct stack
{
int t;
aa a[10001];
void clear() {t=0;}
void push(const aa &x) {a[++t]=x;}
aa top() {return a[t];}
void pop() {t--;}
bool empty() {return t==0;}
}s;
set
一种可以当做集合用的容器,重复数据只会存在一个。
头文件:set
map
将一种类型的数据对应一种类型的数据。【这话说得怎么这么不舒服
头文件:map
vector
动态数组,可以高效地加入、删除元素以及清空所有元素。
头文件:vector
multiset
STL自带伸展树,可代替splay、线段树等。与set的不同之处在于重复数据可以重复存在。
头文件:set
以上是部分STL函数以及容器,其中sort、map最常用,unique、next_permutation和prev_permutation视题目偶尔使用,其他基本不用,但是了解了以后也许会用到。