vector,map,stack,queue,优先队列的常用用法记录

1.vector<type>vr

vr.back(); //返回最后一个元素

vr.front(); //返回第一个元素

vr[i]; //返回第i个元素

vr.clear(); //清空

vr.empty(); //是否为空

vr.pop_back(); //删除a向量的最后一个元素

vr.erase(a.begin()+n,a.begin()+m); //删除的元素从n算起(包括它)一直到m(不包括它)

vr.push_back(n); //在vr的最后一个向量后插入一个元素,其值为n

vr.insert(a.begin()+i,5); //在vr的第i个元素(从第0个算起)的位置插入数值5

vr.insert(a.begin()+i,3,5); //在vr的第i个元素(从第0个算起)的位置插入3个数,其值都为5

(vr.insert(a.begin()+1,b+3,b+6); //b为数组,在a的第1个元素(从第0个算起)的位置插入b的第3个元素到第5个元素(不包括b+6),如b为1,2,3,4,5,9,8 ,插入元素后为1,4,5,9,2,3,4,5,9,8)

vr.size(); //元素个数;

2.map<key,value>mp;

mp.size()//元素个数

mp.empty()//是否为空

mp.clear()//清空

mp.begin()//返回mp中的min迭代器

mp.end()//返回mp中的max的后一个(相当于NULL)

mp.find(key)//找key返回iterator,若无,返回mp.end()‘O(logn)’

mp.erease(key)//删掉该key和其对应的value

3.stack<type>st;

st.top()//返回栈顶元素

st.push(constT&obj/T&&obj)//插入元素

st.pop()//弹出元素

st.size()//元素个数

st.empty()//是否为空

4.queue<type>q;

q.push(item)//入队

q.pop()//出队

q.front()//返回队首元素

q.size()//元素个数

q.empty()//是否为空

5.priority_queue<Type,Container,Functional>

(类型,容器‘默认vector’,比较方法)

例:

priority_queue<int>qq//默认大根堆,输出顺序由大到小

(等价于priority_queue<int,vector<int>,less<int>>qq)

priority_queue<int,vector<int>,greater<int>>qq//小根堆,输出顺序由小到大

上一篇:How to use map() instead of if_else() sandwich?


下一篇:for-range 的配套用法