ฟังก์ชัน operator= ถูกใช้ใน set เพื่อคัดลอก set หนึ่งไปยังอีก set หนึ่ง (หรือย้ายใน C++ STL) มันทำงานเหมือนการกำหนดค่าปกติ '=' สำหรับ set มี 3 รูปแบบที่ overloaded ดังนี้:
Copy :- set& operator= (const set& s1) - ฟังก์ชันนี้คัดลอกทุกสมาชิกใน set s1 ไปยัง set อื่น พารามิเตอร์ที่ส่งเข้าเป็น set ของชนิดเดียวกัน
การใช้งาน - set s1 = s2;
Move :- set& operator=( set &&s1 ) - ฟังก์ชันนี้ย้ายสมาชิกของ set s1 เข้าไปใน set ที่เรียกใช้
Initializer list :- set& operator= (initializer_list<value_type> ilist) - รุ่นนี้คัดลอกค่าจาก initializer list ilist เข้าไปใน set ที่เรียกใช้
การใช้งาน - set<int> s1 = { 1,2,3,4,5 };
หมายเหตุ - ทั้งสามรูปแบบคืนค่า reference ของ this pointer ของ set<T>
โปรแกรมต่อไปนี้สาธิตการใช้งานฟังก์ชัน operator= ในโปรแกรม C++
ตัวอย่าง
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> set1, set2;
// List initialization
set1 = { 1, 2, 3, 4, 5 };
set2 = { 10, 11, 12, 13 };
// ก่อนคัดลอก
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 << " ";
}
// หลังคัดลอก set1 ไป set2
cout << endl << "After Copy" << endl;
cout << "set1 :";
set1 = set2;
for (auto s = set1.begin(); s != set1.end(); ++s) {
cout << *s << " ";
}
return 0;
}
ผลลัพธ์
set1 :1 2 3 4 5 set2 :10 11 12 13 After Copy set1 :10 11 12 13