【容器适配器】什么是容器适配器和用法
什么是容器适配器
就是由基本的容器适配(改造)出来的那些容器,其它没啥特殊的。
比如stack,因为我们可以把stack理解成只是对vector、deque或list的访问加一点限制而已(只能从头部访问),所以没有必要把stack做成一个基本容器,使用其它的基本容器再稍微封装改造一下就OK了,所以stack在STL中就只是一个“容器适配器”,而不是一个基础容器。
来源:https://bbs.csdn.net/wap/topics/310196740
用法
1.stack
stack<int> s;
stack< int, vector<int> > stk; //覆盖基础容器类型,使用vector实现stk
s.empty(); //判断stack是否为空,为空返回true,否则返回false
s.size(); //返回stack中元素的个数
s.pop(); //删除栈顶元素,但不返回其值
s.top(); //返回栈顶元素的值,但不删除此元素
s.push(item); //在栈顶压入新元素item
2.queue & priority_queue
queue<int> q; //priority_queue<int> q;
q.empty(); //判断队列是否为空
q.size(); //返回队列长度
q.push(item); //对于queue,在队尾压入一个新元素
//对于priority_queue,在基于优先级的适当位置插入新元素
//queue only:
q.front(); //返回队首元素的值,但不删除该元素
q.back(); //返回队尾元素的值,但不删除该元素
//priority_queue only:
q.top(); //返回具有最高优先级的元素值,但不删除该元素
原文:https://blog.csdn.net/qq_37521235/article/details/77386871