C++ STL std::堆栈C++;

C++ STL std::堆栈C++;,c++,stl,stack,C++,Stl,Stack,没有尺寸限制。默认情况下,它是一个围绕std::deque的包装器,它将根据需要增长以容纳任意多的元素,直到无法分配更多内存为止。此时,一个push()将导致一个错误std::list和std::vector也可以用作底层容器,其行为方式相同 如果你想发疯,你可以实现你自己的固定大小的容器,并实现你想要的任何行为。std::stack,如果使用默认的std::deque容器,它的大小没有硬限制。如果无法分配,它将抛出异常。从逻辑上讲,堆栈永远不会满。如果你推一个新元素,它只会被添加到顶部。不会删

没有尺寸限制。默认情况下,它是一个围绕
std::deque
的包装器,它将根据需要增长以容纳任意多的元素,直到无法分配更多内存为止。此时,一个
push()
将导致一个错误
std::list
std::vector
也可以用作底层容器,其行为方式相同


如果你想发疯,你可以实现你自己的固定大小的容器,并实现你想要的任何行为。

std::stack
,如果使用默认的
std::deque
容器,它的大小没有硬限制。如果无法分配,它将抛出异常。从逻辑上讲,堆栈永远不会满。如果你推一个新元素,它只会被添加到顶部。不会删除任何内容。如果需要删除第一个元素,请使用
std::queue
std::deque
。堆栈不可能有FIFO算法。堆栈是后进先出结构-通常只能添加/删除堆栈顶部。可以使用
std::deque
(双端队列)进行FIFO。对于固定大小的堆栈,循环缓冲区是一个不错的选择。可惜标准库中没有。