处理std :: stack中的大量项目

Eth*_*han 1 c++ stack stl

C++可以std::stack处理超过10k的int项吗?它的表现怎么样?

Mat*_*hen 8

10K什么?大多数std :: stack实现可以轻松处理具有良好性能的10K基元,因为它可能<80KB.但是,该标准并不保证性能.

另请注意,这取决于您使用的后端.默认值为std :: deque,它基本上是一个数组数组.但是,任何后端都应该获得不错的性能.


R S*_*hko 5

A std::stack仅受底层容器(a std::stack是容器适配器)的限制.

根据底层容器的不同,您将拥有不同的限制.

A std::vector将需要连续的内存,而a std::list只会受到堆大小(以及可能的任何堆碎片)的限制.但是std::deque(默认容器)介于两者之间; 它需要较小的连续内存块,但主要受到堆大小的限制.