C++-এ Set এবং UnorderedSet উভয়ই ডেটা সংরক্ষণের জন্য অ্যাসোসিয়েটিভ কন্টেইনার। কিন্তু তাদের বৈশিষ্ট্যে পার্থক্য আছে।
মূল পার্থক্যগুলো
| ক্রমিক নং | বিষয় | Set | UnorderedSet |
|---|---|---|---|
| 1 | সংজ্ঞা | সর্টেড অর্ডারে ডেটা রাখে, ডুপ্লিকেট না। | অসর্টেড অর্ডারে ডেটা রাখে, ডুপ্লিকেট না। |
| 2 | সর্টিং | সর্টেড অর্ডার। | অসর্টেড অর্ডার। |
| 3 | ডুপ্লিকেট | অনুমোদিত নয়। | অনুমোদিত নয় (ডিসকার্ড হয়)। |
| 4 | ইমপ্লিমেন্টেশন | বাইনারি সার্চ ট্রি (BST)। | হ্যাশ টেবিল। |
উদাহরণ: Set
#include <iostream>
#include <set>
using namespace std;
int main() {
int data[15] = {11,55,22,66,33,22,11,44,77,88,66,99,66,23,41};
set<int> my_set;
for (int i=0;i<15;i++) my_set.insert(data[i]);
for (auto it=my_set.begin(); it!=my_set.end(); it++)
cout << "Item: " << *it << endl;
return 0;
}
আউটপুট (সর্টেড)
Item: 11 Item: 22 Item: 23 Item: 33 Item: 41 Item: 44 Item: 55 Item: 66 Item: 77 Item: 88 Item: 99
উদাহরণ: UnorderedSet
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int data[15] = {11,55,22,66,33,22,11,44,77,88,66,99,66,23,41};
unordered_set<int> my_set;
for (int i=0;i<15;i++) my_set.insert(data[i]);
for (auto it=my_set.begin(); it!=my_set.end(); it++)
cout << "Item: " << *it << endl;
return 0;
}
আউটপুট (অসর্টেড)
Item: 11 Item: 55 Item: 22 Item: 66 Item: 33 Item: 44 Item: 77 Item: 88 Item: 99 Item: 23 Item: 41