我正在使用std::stack
作为项目,我需要前往检查相同的值。我检查了成员函数,但是我找不到适合这个任务的函数。
出现的第一个想法是使用副本堆栈但是,在这种情况下,程序可能会浪费大量额外空间,而不使用用户定义的堆栈类在项目的这个级别很重要(是的,我做了设计错误......)。
那么,任何想法?
谢谢!
答案 0 :(得分:5)
避免std::stack
,它只是一个无用的包装器,它使底层容器的接口变得笨拙。使用std::vector
与push_back
/ pop_back
进行插入/移除(插入/移除最后是摊销O(1))或std::deque
,从而可以推送/在任何一方都没有显着改变(仍然摊销O(1))。在这两种情况下,您都可以使用随机访问迭代器遍历所有元素。
(同样适用于std::queue
:它没用,直接使用std::deque
/ push_back
<{1>}({em> not vector)