温馨提示×

c++ stack类怎样进行栈的拷贝

c++
小樊
96
2024-09-25 08:39:14
栏目: 编程语言

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,则会将新栈中的元素拷贝到旧栈中,而不是创建一个新的栈对象。因此,要创建一个新的栈对象,应该使用拷贝构造函数。

0