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