দুটি সেটের ইউনিয়ন (Union) হলো সেই উপাদানগুলো যা দুটি সেটের যেকোনো একটিয় বা উভয়তেই থাকে। যদি একই উপাদান দুটি সেটেই থাকে, তবে ফলাফলে সেটি শুধু একবার থাকে।
সেট অপারেশন প্রকারভেদ:
- Set Union (ইউনিয়ন)
- Set Intersection (ইন্টারসেকশন)
- Symmetric Set Difference (সিমেট্রিক ডিফারেন্স)
- Set Difference (ডিফারেন্স/সাবট্রাকশন)
এলগরিদম
শুরু ভেক্টর v এবং ইটারেটর st ঘোষণা করুন st = set_union(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;
// set_union সর্ট করা রেঞ্জ আশা করে
sort(set1, set1 + 6);
sort(set2, set2 + 6);
st = set_union(set1, set1 + 6, set2, set2 + 6, v.begin());
v.resize(st - v.begin()); // আসল আকারে রিসাইজ
cout << "The union between the sets has " << v.size() << " elements: " << endl;
for (st = v.begin(); st != v.end(); ++st)
cout << *st << " ";
cout << endl;
return 0;
}
আউটপুট
The union between the sets has 10 elements: 1 2 3 4 5 6 7 8 9 10
গুরুত্বপূর্ণ: set_union কাজ করার জন্য ইনপুট রেঞ্জ দুটোই সর্ট করা থাকতে হয়। আউটপুটও সর্টেড থাকে। ডুপ্লিকেট উপাদান স্বয়ংক্রিয়ভাবে হ্যান্ডেল হয়।