stack模板
很多算法都要用到栈,STL提供的stack模板的成员函数如下:
stack (const Sequence &c=Sequence())
bool empty () const
size_type size () const
reference top ()
const_reference top () const
void push (const value_type &x)
void pop ()
在有些算法中需要将整个工作栈拷贝出来。但是,stack模板好象没有提供相应的手段,对于stack有没有合适的方法完成工作栈的拷贝?
问题点数:20、回复次数:3Top
1 楼useresu(俗人)(灌水是我无言的抗议)回复于 2005-06-03 21:32:48 得分 10
stack是一个适配器,除了作为栈必须提供的接口外,
其他的实现其实是由实现它的标准容器决定的,
如果你用一个vector实现stack,
那么你就可以先实现vector的拷贝,
然后用拷贝后的vector去初始化一个stack,
当然这样效率可能低一些,
仅是我的一些想法,供参考Top
2 楼sunman1982(冥王星)回复于 2005-06-03 21:43:51 得分 0
自己写的时候不可以实现一个copy函数么?Top
3 楼nasi00(莫傲·逍遥)回复于 2005-06-04 02:42:12 得分 10
如果你追求效率的话,可以自己写Stack,相信一点儿都不麻烦,你的要求也都能达到
如果你不追求效率的话,可以通过别的容器封装而成,STL里面的Stack的确提供的接口太少,如果我选的话,我通常都是用deque,push_back()加上pop_front()Top




