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 đề
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