关于SO的众多答案和评论声称使用std::stack几乎没用,但除了"使用std::vector或std::deque替代" 之外,并没有真正给出其他理由.
为什么?它出什么问题了?
索赔证据:
err*_*kos 10
有一种说法是这样的:
不要诱惑别人去做你不希望他/她做的事情.
堆栈是一种定义明确的数据结构.它的行为很好地实现了std::stack.
如果您只需要一个堆栈而不是更多,那就去吧std::stack.它将帮助您坚持数据结构的目的,并使您的程序更清晰易懂,更易于维护.
但是,请尝试评估您是否需要比堆栈提供的功能更多的功能.
例如,正如已经陈述的那样,有充分的理由支持std::deque或者使用std::vector迭代器.
在所有情况下,作为使用std :: stack几乎无用的事实的证据,它是一种额外的功能(超出堆栈的功能),这促使放弃std::stack了另一个容器.