c++ 为什么 stack 是用队列实现的
1个回答
展开全部
std::stack的设计意图是作为一个容器适配器,而不是真正意义上的栈容器。
这样做可以在一定程度上将你的代码(用户代码)与实现细节隔离。你可以在不影响大部分的std::stack用户代码的情况下改变std::stack内部具体的存储结构。
#include <stack>
#include <list>
template <typename R>
void UseStack( std::stack<int, R> & stack ) {
stack.push( 1 );
stack.push( 2 );
stack.push( 3 );
}
int main() {
std::stack<int, std::deque<int>> stack1;
UseStack( stack1 );
std::stack<int, std::list<int>> stack2;
UseStack( stack2 );
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询