我正在使用std::stack
一个项目,我需要在它上面检查相同的值.我检查了成员函数但是,我找不到适合这个任务的函数.
提出的第一个想法是使用复制堆栈但是,在这种情况下,程序可能会浪费大量额外空间,并且在项目的这个级别上不使用用户定义的堆栈类很重要(是的,我犯了一个设计错误......)
那么,任何想法?
谢谢!
避免std::stack
,它只是一个无用的包装器,使底层容器的接口变得笨拙.使用std::vector
带push_back
/ pop_back
用于插入插入/移除(插入/移除最后是分摊O(1)),或者std::deque
,您可以在任何一侧推/弹而不会有显着的性能变化(仍然是摊销的O(1)).在这两种情况下,您都可以使用随机访问迭代器遍历所有元素.
(同样适用于std::queue
:它没用,直接使用std::deque
(不是矢量)和push_back
/ pop_front
)