Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
std::vector和 和有什么不一样std::stack?
std::vector
std::stack
显然,向量可以删除集合中的项目(尽管比列表慢得多),而堆栈被构建为仅限 LIFO 的集合。
但是,最终项目操作的堆栈是否更快?它是链表还是动态重新分配的数组?
我找不到关于堆栈的太多信息,但如果我正确地描绘了它们(它们类似于实际的线程堆栈;推送、弹出等 - 以及该top()方法),那么它们似乎非常适合窗口堆叠管理。
top()
Astack不是容器;它是一个容器适配器。它有一个vector,deque或类似的容器,它存储为实际保存元素的成员。请记住:它被声明为:
stack
vector
deque
template< class T, class Container = std::deque<T> > class stack;
所做的只是将用户界面限制在stack这个内部容器中。操作的性能特征与底层容器的性能特征完全相同。