Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

stack swap() ใน C ++ STL


ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน stack::swap()ใน C++ STL

สแต็คใน C++ STL คืออะไร

สแต็คคือโครงสร้างข้อมูลที่จัดเก็บข้อมูลใน LIFO (เข้าก่อนออกก่อน) ที่ wedo แทรกและลบจากด้านบนหรือองค์ประกอบสุดท้ายแทรก เช่นเดียวกับกองเพลต หากเราต้องการดันเพลทใหม่เข้าไปในกอง เราก็ใส่ที่ด้านบน และถ้าเราต้องการเอาเพลทออกจากกอง เราก็เอาออกจากด้านบนด้วย

stack::swap() คืออะไร

ฟังก์ชัน stack::swap() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว swap() ใช้เพื่อสลับเนื้อหาของสองสแต็กที่เกี่ยวข้อง ฟังก์ชันนี้จะแลกเปลี่ยนเนื้อหาของคอนเทนเนอร์

ไวยากรณ์

stack_name.swap(stack& stack2);

พารามิเตอร์

ฟังก์ชันยอมรับพารามิเตอร์ต่อไปนี้ −

  • stack2:stack container อื่นที่เราต้องการสลับเนื้อหา

คืนค่า

ฟังก์ชันนี้ไม่ส่งคืนสิ่งใด

ป้อนข้อมูล

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