【容器适配器】什么是容器适配器和用法

什么是容器适配器

就是由基本的容器适配(改造)出来的那些容器,其它没啥特殊的。
比如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 

猜你喜欢

转载自blog.csdn.net/bandaoyu/article/details/88660105