1.迭代器(游标)

temp.begin()第一个元素

temp.end()最后一个元素的下一个位置

temp.rbegin()最后一个元素

temp.rend()第一个元素的前面一个位置


2.优先队列

priority_queue<int,vector<int>,greater<int> >q;//越小的整数优先级越大
priority_queue<int,vector<int>,less<int> >q;//越大的整数优先级越大

排序

struct node{
    int x,y;
    ll v;
    bool operator <(const node & obj)    const{ //为了排序
       return v<obj.v; 大的在前
    }
};

3.multimap 一对映pair

multimap<int,int>m;
m.insert(make_pair(1,2));//insert插入一个pair类型

4.list STL 链表

声明: list <int> l;

l.push_back()尾部插入一个节点

l.push_front()头部插入 一个节点

l.empty(); 是否空

l.clear() 清空

l.reverse() 翻转

a.merge(b,greater<int>());    b加到a中,并且b升序

for(list<int>::iterator it=l.begin();it!=l.end();){ 遍历list以及删除当前节点
            int a=*it;
            if(!bad[a]){
                q.push(a);
                l.erase(it++); //it++;
            }
            else    it++;
        }