Set Difference (ความต่างของเซต) ประกอบด้วยองค์ประกอบที่อยู่ในเซตแรกเท่านั้น ไม่อยู่ในเซตที่สอง องค์ประกอบที่คัดลอกมาจะมาจากเซตแรกและเรียงลำดับอยู่แล้ว
การดำเนินการเซตทั่วไป
- Set Union
- Set Intersection
- Symmetric Set Difference
- Set Difference (Subtraction)
อัลกอริธึม
- ประกาศเวกเตอร์
vและ iteratorit - เรียงลำดับเซตทั้งสอง
- เรียก
set_difference(set1, set1+n, set2, set2+n, v.begin()) - ปรับขนาดเวกเตอร์และแสดงผล
โค้ดตัวอย่าง
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int set1[] = {5, 6, 7, 8, 9, 10};
int set2[] = {1, 2, 3, 4, 6, 7};
vector<int> v(10);
vector<int>::iterator it;
sort(set1, set1 + 6);
sort(set2, set2 + 6);
it = set_difference(set1, set1 + 6, set2, set2 + 6, v.begin());
v.resize(it - v.begin());
cout << "The difference between the sets has " << v.size() << " elements: " << endl;
for (it = v.begin(); it != v.end(); ++it)
cout << *it << " ";
cout << endl;
return 0;
}
ผลลัพธ์
The difference between the sets has 4 elements: 5 8 9 10
คำอธิบาย: เฉพาะ 5, 8, 9, 10 ที่อยู่ใน set1 แต่ไม่อยู่ใน set2 (6 และ 7 อยู่ในทั้งคู่ จึงถูกตัดออก)