【发布时间】:2015-06-22 07:56:34
【问题描述】:
我正在使用 STL 堆栈容器的默认功能(推送、弹出、顶部、空、大小)。如果我想添加更多功能,例如从堆栈中间访问元素。
我该怎么做?
谢谢
【问题讨论】:
-
你没有。那不是堆栈。如果您想要更强大的容器,请使用不同的容器。喜欢
std::vector。 -
有人可能选择使用堆栈的原因之一是它意味着需要一组特定的操作,从而为代码读者提供一些可能使用的算法的提示。它还意味着能够切换到堆栈的另一个实现(例如,查看它是否性能更好或使用更少的内存)。如果您有某种超出预期界面的“电源堆栈”,那么您已经使这些含义无效,并且会使代码的审阅者/维护者感到困惑。
-
stack 默认使用双端队列来实现,但只提供了 5 个功能。我可以为堆栈制作一个通用容器吗?
-
知道
std::deque是std::stack的底层,为什么不直接使用std::deque?
标签: c++ visual-c++ stl