队列:
#include<queue>
queue<int> q;
q.push(x);
q.pop();
q.empty();
q.size();
q.front();
q.back();
栈:
#include<stack>
stack<int> s;
s.push(x);
s.pop();
s.empty();
s.size();
s.top();
数组:
#include<vector>
vector<int> a;
a.size()
a.push_back(x);
a.pop_back();
a.front();
a.back()
a.begin()
a.end()
for(auto x:a) cout<<x<<" ";
字符串
#include<cstring>
string s;
s+="abc";
s.size()
s.substr(a,b)
printf("%s",s.c_str());
优先队列:
#include<queue>
priority_queue<int> q;
priority_queue<int,verctor<int>,greater<int>> q;
q.push();
q.pop();
q.top();
q.size()
双端队列
#include<deque>
deque<int> q;
q.size()
q.push_back(x);
q.push_front(x);
q.pop_back();
q.pop_front();
q.front();
q.back();
q.empty()
Set:
#include<set>
set<int> s;
s.insert(x);
s.count(x);/元素x的个数
s.find(x);查找x
s.erase(x);
s.lower_bound(x)
s.upper_bound(x)
s.begin()/s.end() 支持++ --,返回前驱/后继 O(logn)