STL大全
vector
a.pop_back(); 删除最后一个元素
循环队列queue
q.push(x); 从队尾入队x
q.pop(); 从队头出队
q.front(); 查询队头元素
q.back(); 查询队尾元素
优先队列priority_queue
q.push(x); 把x插入堆
q.pop(); 删除堆顶元素
q.top(); 查询堆顶元素
priority_queue<int, vector<int>, greater<int> >q;//堆顶元素最小用greater
优先队列把较大的元素放在堆顶
重载运算符:
bool operator <(const abc &a,const abc &b) { return ; }
双端队列deque
a[x]; 支持随机访问
a.begin(); a.end();
a.front(); a.back();
a.push_back(x); a.push_front(x);
a.pop_front(); a.pop_back();
a.clear();
find
a.find(x); 返回指向该元素的迭代器,不存在返回a.end()
lower_bound / upper_bound
a.lower_bound(x); 查找≥x的元素中最小的一个
a.upper_bound(x); 查找>x的元素中最小的一个
erase
设it是一个迭代器,a.erase(it) 从a中删除it指向的元素
设x是一个元素,a.erase(x) 从a中删除所有等于x的元素
count
a.count(x); 返回等于x的元素个数
multiset
有序可重集,默认从小到大