কম্পিউটার টিউটোরিয়াল

C++-এ set, multiset, unordered_set, unordered_multiset-এর পার্থক্য


এখানে আমরা দেখব 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

  1. C++-এ struct এবং typedef struct-এর পার্থক্য

  2. C++-এ new অপারেটর এবং operator new-এর পার্থক্য কী?

  3. C++-এ 'struct' এবং 'typedef struct'-এর পার্থক্য

  4. C++ স্ট্রিং কনস্ট্যান্ট এবং ক্যারেক্টার কনস্ট্যান্টের পার্থক্য