দুটি সেটের সিমেট্রিক ডিফারেন্স (Symmetric Difference) হলো সেই উপাদানগুলো যা দুটি সেটের যেকোনো একটিয় থাকে, কিন্তু উভয়তেই থাকে না। অর্থাৎ, এটি ইউনিয়ন থেকে ইন্টারসেকশন বাদ দিয়ে বাকি অংশ।
সেট অপারেশন প্রকারভেদ:
- Set Union
- Set Intersection
- Symmetric Set Difference (XOR)
- Set Difference
এলগরিদম
শুরু ভেক্টর v এবং ইটারেটর st ঘোষণা করুন st = set_symmetric_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 st;
sort(set1, set1 + 6);
sort(set2, set2 + 6);
st = set_symmetric_difference(set1, set1 + 6, set2, set2 + 6, v.begin());
v.resize(st - v.begin());
cout << "The symmetric difference between the sets has " << v.size() << " elements: " << endl;
for (st = v.begin(); st != v.end(); ++st)
cout << *st << " ";
cout << endl;
return 0;
}
আউটপুট
The symmetric difference between the sets has 8 elements: 1 2 3 4 5 8 9 10
ব্যাখ্যা: উপাদান ৬ এবং ৭ দুটি সেটেই আছে, তাই সিমেট্রিক ডিফারেন্সে এগুলো বাদ পড়েছে। বাকি ১,২,৩,৪ (শুধু set2-এ) এবং ৫,৮,৯,১০ (শুধু set1-এ) ফলাফলে আছে।