C++容器适配器(stack)是怎么实现的?
我知道C++的顺序容器有vector、list、deque。问题1:vector和list分别是采用顺序存储(便于随机访问)和链式存储(便于增删结点)实现的线性表吧?de...
我知道C++的顺序容器有vector、list、deque。
问题1:vector和list分别是采用顺序存储(便于随机访问)和链式存储(便于增删结点)实现的线性表吧?deque是双端队列,双端队列只是一个操作受限的线性表,那么deque是采用顺序存储还是链式存储实现呢?
C++ Primer上面说道:容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。
问题2:stack是一个容器适配器,默认的stack是基于deque实现的,但是可以显式的让其用vector或list实现,现在我想知道的是stack是怎么实现的
class stack:public deque{
......
void push(T item);
void pop();
void peek();
}
其中push(),pop(),peek() 都是stack自己添加的成员函数,并且stack没有将deque的public成员函数隐藏,是吗?
但是还能基于vector和list实现stack,是怎么回事?是用多重继承实现的吗?我很不明白啊~
可惜没有财富值了 展开
问题1:vector和list分别是采用顺序存储(便于随机访问)和链式存储(便于增删结点)实现的线性表吧?deque是双端队列,双端队列只是一个操作受限的线性表,那么deque是采用顺序存储还是链式存储实现呢?
C++ Primer上面说道:容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。
问题2:stack是一个容器适配器,默认的stack是基于deque实现的,但是可以显式的让其用vector或list实现,现在我想知道的是stack是怎么实现的
class stack:public deque{
......
void push(T item);
void pop();
void peek();
}
其中push(),pop(),peek() 都是stack自己添加的成员函数,并且stack没有将deque的public成员函数隐藏,是吗?
但是还能基于vector和list实现stack,是怎么回事?是用多重继承实现的吗?我很不明白啊~
可惜没有财富值了 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询