Bài viết này trình bày cách hoạt động của hàm forward_list::swap() trong C++.
Forward List là gì?
forward_list là container trình tự cho phép chèn và xóa trong thời gian không đổi ở bất kỳ vị trí nào. forward_list được triển khai dưới dạng danh sách liên kết đơn. Thứ tự được duy trì bằng cách liên kết mỗi phần tử với phần tử tiếp theo.
forward_list::swap() là gì?
forward_list::swap() là hàm trong thư viện chuẩn C++ dùng để hoán đổi nội dung của hai list cùng kiểu và cùng kích thước (hoặc khác kích thước, nó sẽ hoán đổi toàn bộ nội dung).
Cú pháp
forward_list1.swap(forward_list2)
Hoặc
swap(forward_list1, forward_list2)
Ví dụ minh họa
Trước hoán đổi: List1: 57 99 54 34 84 List2: 45 65 78 96 77 Sau hoán đổi: List1: 45 65 78 96 77 List2: 57 99 54 34 84
Cách tiếp cận
- Khởi tạo hai forward list.
- In hai list.
- Gọi hàm
swap(). - In hai list sau khi hoán đổi.
Thuật toán
Bắt đầu
BƯỚC 1: Khởi tạo hai list và in ra
List1 = {10, 20, 30, 40, 50}
List2 = {40, 30, 20, 10, 50}
BƯỚC 2: Gọi swap(list1, list2)
Kết thúc
Ví dụ code
// C++ code demo forward_list::swap()
#include <iostream>
#include <forward_list>
using namespace std;
int main() {
forward_list<int> list1 = {10, 20, 30, 40, 50};
cout << "Phần tử List1: ";
for (auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
forward_list<int> list2 = {40, 30, 20, 10, 50};
cout << "\nPhần tử List2: ";
for (auto x = list2.begin(); x != list2.end(); ++x)
cout << *x << " ";
swap(list1, list2);
cout << "\nSau hoán đổi List1: ";
for (auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
cout << "\nSau hoán đổi List2: ";
for (auto x = list2.begin(); x != list2.end(); ++x)
cout << *x << " ";
return 0;
}
Kết quả
Phần tử List1: 10 20 30 40 50 Phần tử List2: 40 30 20 10 50 Sau hoán đổi List1: 40 30 20 10 50 Sau hoán đổi List2: 10 20 30 40 50