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

Toán tử gán set operator= trong C++ STL

Hàm operator= dùng trong set để sao chép một set (hoặc di chuyển) sang set khác trong C++ STL. Nó hoạt động như phép gán bình thường cho set. Có ba dạng nạp chồng:

  • Sao chép (copy): set& operator= (const set& s1) - Sao chép tất cả phần tử từ set s1 sang set khác. Tham số là set cùng kiểu.

  • Sử dụng: set s1 = s2;

  • Di chuyển (move): set& operator=( set &&s1 ) - Di chuyển phần tử của s1 vào set gọi.

  • Danh sách khởi tạo (initializer list): set& operator= (initializer_list<value_type> ilist) - Sao chép giá trị từ danh sách khởi tạo vào set gọi.

  • Sử dụng: set<int> s1 = { 1,2,3,4,5 };

Lưu ý: Tất cả đều trả về tham chiếu con trỏ this kiểu set<T>.

Chương trình sau minh họa cách dùng operator= trong C++:

Ví dụ

#include <iostream>
#include <set>
using namespace std;

int main() {
    set<int> set1, set2;
    // Khởi tạo bằng danh sách
    set1 = { 1, 2, 3, 4, 5 };
    set2 = { 10, 11, 12, 13 };
    // Trước khi sao chép
    cout << "set1: ";
    for (auto s = set1.begin(); s != set1.end(); ++s) {
        cout << *s << " ";
    }
    cout << endl;
    cout << "set2: ";
    for (auto s = set2.begin(); s != set2.end(); ++s) {
        cout << *s << " ";
    }
    // Sau khi sao chép set1 = set2
    cout << endl << "Sau khi sao chép" << endl;
    cout << "set1: ";
    set1 = set2;
    for (auto s = set1.begin(); s != set1.end(); ++s) {
        cout << *s << " ";
    }
    return 0;
}

Đầu ra

set1: 1 2 3 4 5
set2: 10 11 12 13
Sau khi sao chép
set1: 10 11 12 13