河南怎么样做网站,wordpress内容清空,wordpress4.9.6中文,怎么填写网站icp备案一、stack 和 queue
在 STL 中 stack 和 queue 已经不算是容器了#xff0c;而是容器适配器#xff0c;适配器模式也是常用的模式之一#xff0c;体现在 stack 和 queue 中就是他们两个的实现不是单独写的#xff0c;而是复用了前面合适的优秀的STL 容器的代码而实现的具有…一、stack 和 queue
在 STL 中 stack 和 queue 已经不算是容器了而是容器适配器适配器模式也是常用的模式之一体现在 stack 和 queue 中就是他们两个的实现不是单独写的而是复用了前面合适的优秀的STL 容器的代码而实现的具有 stack 和 queue 特点的容器。
二、部分代码展示
#pragma once
#includevector
#includelist
using namespace std;
namespace bit
{// 适配器模式封装前面已有的优秀容器实现栈// 模板参数也可以默认这里默认容器适配器是vector即复用vector实现stack// queue用listvector头删效率低templateclass T, class Container vectorTclass stack{public:void push(const T x){_con.push_back(x);}void pop(){_con.push_back();}size_t size(){return _con.size();}bool empty(){return _con.empty();}T top(){return _con.back();}private:Container _con;};
}
适配器模式在这里说白了就是用模板来复用 vector 或 list 来实现 stack 的后进先出。
三、vector list deque
容器优点缺点vector随机访问效率高头删效率低扩容有消耗list插入删除效率高访问效率低deque兼容 vector list 优点优点都不极致
deque 支持随机访问头插头删尾插尾删但是效率都不够极致。
结构是有一组中控指针数组存放这每一个小数组的指针可以较快访问插入删除。
上面 stack 我们用 vector 和 list 适配在 STL 中是用 deque 适配