Computer >> Máy Tính >  >> Lập trình >> C ++

stack swap () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của hàm stack ::swap () trong C ++ STL.

Stack trong C ++ STL là gì?

Ngăn xếp là cấu trúc dữ liệu lưu trữ dữ liệu trong LIFO (Last In First Out) nơi chèn và xóa wedo từ phần trên cùng hoặc phần tử cuối cùng được chèn vào. Giống như một chồng đĩa, nếu chúng ta muốn đẩy một đĩa mới vào ngăn xếp, chúng ta sẽ chèn ở trên cùng và nếu chúng ta muốn lấy đĩa ra khỏi chồng, thì chúng ta cũng lấy nó ra từ trên cùng.

stack ::swap () là gì?

Hàm stack ::swap () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . swap () được sử dụng để hoán đổi nội dung của hai ngăn xếp được liên kết. Chức năng này trao đổi nội dung của các thùng chứa

Cú pháp

stack_name.swap(stack& stack2);

Tham số

Hàm chấp nhận (các) tham số sau -

  • stack2:Một vùng chứa ngăn xếp khác mà chúng tôi muốn trao đổi nội dung.

Giá trị trả về

Hàm này không trả về gì

Đầu vào

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);

Đầu ra

odd: 2 4 6
eve: 1 3 5

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

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