阅读量:0
C++中的stack类使用deque容器实现,因此可以使用deque的拷贝构造函数和赋值运算符来完成栈的拷贝。
假设有一个名为mystack的stack对象,要将其拷贝为newstack对象,可以使用以下代码:
#include <stack> using namespace std; int main() { stack<int> mystack; // 向mystack中添加元素 mystack.push(1); mystack.push(2); mystack.push(3); // 使用拷贝构造函数创建新的栈对象 stack<int> newstack(mystack); // 打印newstack中的元素 while (!newstack.empty()) { cout << newstack.top() << endl; newstack.pop(); } return 0; }
在上述代码中,使用stack<int>(mystack)
创建了一个名为newstack的新栈对象,并将mystack中的所有元素拷贝到新栈中。
需要注意的是,如果使用赋值运算符mystack = newstack
,则会将新栈中的元素拷贝到旧栈中,而不是创建一个新的栈对象。因此,要创建一个新的栈对象,应该使用拷贝构造函数。