好看的网站建设公司,wordpress打赏积分功能,青岛网站推广,那个网站做图片很多人在听到适配器的时候#xff0c;应该都是懵的#xff0c;因为对适配器的理解都是懵懵懂懂#xff0c;其实他很好理解#xff0c;就是相当于一个转换器。我们可以这样理解#xff0c;就是现实当中是的插排一样#xff0c;上面有三个孔的#xff0c;也有两个孔的应该都是懵的因为对适配器的理解都是懵懵懂懂其实他很好理解就是相当于一个转换器。我们可以这样理解就是现实当中是的插排一样上面有三个孔的也有两个孔的不管三个孔还是两个孔只要我们插上对应的充电器就可以给对应的电子产品充电。
双端队列其实双端队列底层是非常复杂的他比普通的队列有很大优势头插头删等因为这个队列的两端都可以进行插入和删除。所以在进行头插和头删尾插尾删等时间复杂度是O(1)。它的底层是若干个数组组成的然后头一个中控器其中中控器中有遍历整个队列的迭代器所以我们可以知道的是若是在中间插入删除最好不要用双端队列如果进行的操作是头插等那么此时可以用双端队列。
上面两个关键的工具介绍完了之后我们来看看Stackstack是一个容器适配器怎么理解呢可以想一下我们以前在学数据结构的时候我们的stack有数组栈和链栈所以此时在理解就比较好理解了。那么它的代码实现是什么呢如下
#include iostream
#include queue
using namespace std;
namespace cc
{templateclass T, class containdequeTclass Stack{public:void push(const T x){_con.push_back(x);}T top() {return _con.back();}void pop(){_con.pop_back();}bool empty()const{return _con.size();}size_t size()const{return _con.size();}private:contain _con;};
}
这里写了几个比较简单的成员函数我们可以看到的是stack的默认适配器是deque也就是双端队列。你也可以传适配器的参数个人认为stack是STL中模拟实现比较简单的了。