C++ STL 中的 stack swap()


在本文中,我們將討論 C++ STL 中 stack::swap() 函式的工作原理、語法和示例。

什麼是 C++ STL 中的棧?

棧是一種資料結構,將資料儲存在 LIFO(後進先出)中,其中的插入和刪除操作從頂部或最後插入的元素開始。就像一疊盤子,如果我們想將一個新盤子推入棧中,那麼我們從頂部插入;如果我們想從棧中移除一個盤子,那麼我們也要從頂部移除。

什麼是 stack::swap()?

stack::swap() 函式是 C++ STL 中的一個內建函式,它在 <stack> 標頭檔案中定義。swap() 用於交換兩個關聯棧的內容。此函式交換容器的內容

語法

stack_name.swap(stack& stack2);

引數

此函式接受以下引數(s)−

  • stack2:我們希望與其交換內容的另一個 stack 容器。

返回值

此函式不返回任何內容

輸入

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;
   //inserting elements to stack 1
   stck_1.push(1);
   stck_1.push(2);
   stck_1.push(3);
   stck_1.push(4);
   //inserting elements to stack 2
   stck_2.push(5);
   stck_2.push(6);
   stck_2.push(7);
   stck_2.push(8);
   //swapping elements of stack 1 in stack 2 and vice-versa
   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

更新於: 22-4-2020

311 次檢視

開啟您的 職業生涯

完成課程獲得認證

開始
廣告