C ++ STL中的stack swap()

在本文中,我们将讨论C ++ STL中stack::swap()函数的工作原理,语法和示例。

什么是C ++ STL中的堆栈?

堆栈是一种数据结构,用于将数据存储在LIFO(后进先出)中,在这里我们从插入的顶部或最后一个元素开始进行插入和删除。就像一叠板子一样,如果我们想将一个新的板子推入栈中,我们会在顶部插入,如果我们想从板子中取出该板子,那么我们也将从顶部将其删除。

什么是stack::swap()?

stack::swap()函数是C ++ STL中的内置函数,该函数在<stack>头文件中定义。swap()用于交换关联的两个堆栈的内容。此函数交换容器中的内容

语法

stack_name.swap(stack& stack2);

参数

该函数接受以下参数-

  • stack2:我们要与之交换内容的另一个堆栈容器。

返回值

此函数不返回任何内容

输入项

std::stack<int>odd;
odd.emplace(1);
odd.emplace(3);
odd.emplace(5);
std::stack<int&g; eve;
eve.emplace(2);
eve.emplace(4);
eve.emplace(6);
odd.swap(eve);

输出结果 

odd: 2 4 6
eve: 1 3 5

示例

#include <iostream>
#include <stack>
using namespace std;
int main(){
   stack<int> stck_1, stck_2;
   //将元素插入堆栈1-
   stck_1.push(1);
   stck_1.push(2);
   stck_1.push(3);
   stck_1.push(4);
   //将元素插入堆栈2-
   stck_2.push(5);
   stck_2.push(6);
   stck_2.push(7);
   stck_2.push(8);
   //在堆栈2中交换堆栈1中的元素,反之亦然
   stck_1.swap(stck_2);
   cout<<"Elements in stack 1 are: ";
   while (!stck_1.empty()){
      cout<<stck_1.top()<<" ";
      stck_1.pop();
   }
   cout<<"\nElements in stack 2 are: ";
   while (!stck_2.empty()){
      cout<<stck_2.top()<<" ";
      stck_2.pop();
   }
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Elements in stack 1 are: 8 7 6 5
Elements in stack 2 are: 4 3 2 1