vector
vector< int > vi;
vi.push_back(i);
vi.pop_back(); //无实参
vi.size();
vi.clear();
vi.insert(it, x); //在it迭代器指定的位置上插入一个元素x,vector中的it处及其后面的元素顺次向后移动一位
vi.erase(it);
vi.erase(first, last);
举例:vi.erase(vi.begin()+1, vi.begin()+4);
set
set< int > st;
st.insert(x);
st.find(value); //返回迭代器
st.erase(it);
st.erase(value);
st.erase(first, last);//注意是迭代器
st.size();
st.clear();
string
string str;
str.length(); //or str.size();
str.insert(pos, string);
str.insert(it, it2, it3);
str.erase(it);
str.erase(first, last);
str.erase(pos, length);
str.clear();
str.substr(pos, len); //返回从pos位开始的长度为len的子串
str.find(str2); //返回str2在str中第一次出现的位置,若不是str的子串,函数返回string::npos(可以把这理解为一个常数);
str.find(pos, str2);
str.replace(pos, len, str2); //替换
str.replace(it1, it2, str2);
priority_queue
#include < queue >
priority_queue< int > q;
q.push(x);
q.top();
q.pop();
q.empty();
q.size();
默认是数字大的优先级高。
priority_queue< int > q;
priority_queue< int, vector< int >, less< int > > q;//与上面等价
若想让数字小的优先级高,则
priority_queue< int, vector< int >, greater< int > > q;