Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm forward_list::swap() trong C++ STL


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