std::vector
是容器,而 std::stack
是容器适配器。
std::stack
只提供和堆栈相关的接口,其中主要是 push()
、emplace()
、pop()
、top()
和empty()
。使用 std::stack
时只需关心这些接口,而非内在用了哪个具体容器。改变容器类型也不需要修改调用方的代码。这个设计应该可说是乎合 SOLID 中的 I ──接口隔离原则(interface segregation principle)。
std::stack
可适配的标准容器有 std::vector
、std::list
、std::deque
,而 std::deque
是缺省的,因为它提供 的push_back()
,而 std::vector::push_back()
是均摊(amortized) 。
为什么我想不出这种面试题⋯⋯
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有