📜  C++ STL中的stack swap()(1)

📅  最后修改于: 2023-12-03 15:29:50.963000             🧑  作者: Mango

C++ STL中的stack swap()

在C++ STL中,stack是一个常用的容器,常用于实现后进先出(LIFO)的数据结构。stack函数有一个swap()方法,可以用来交换两个stack中的内容。

语法
void swap(stack& other);

其中,other代表另一个stack容器,函数作用是将当前stack和other进行交换。

示例
#include <iostream>
#include <stack>

using namespace std;

int main() {
    stack<int> s1, s2;
    s1.push(1);
    s1.push(2);
    s1.push(3);
    s2.push(4);
    s2.push(5);
    s2.push(6);

    // 交换两个stack中的内容
    s1.swap(s2);

    cout << "stack s1: ";
    while (!s1.empty()) {
        cout << s1.top() << " ";
        s1.pop();
    }
    cout << endl;

    cout << "stack s2: ";
    while (!s2.empty()) {
        cout << s2.top() << " ";
        s2.pop();
    }
    cout << endl;

    return 0;
}

输出结果为:

stack s1: 6 5 4
stack s2: 3 2 1

可以看到,调用swap()函数后,s1和s2中的内容互相交换了。

注意事项
  • swap()函数不会影响stack的大小(即元素个数)
  • 交换的两个stack内部的存储结构不会改变,只是将两个stack中的元素互相交换
结论

通过调用C++ STL中的stack的swap()函数,可以方便地交换两个stack的内容,从而实现代码简洁优雅的操作。