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. 百科问答小站 版权所有