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

C++ STL-এ ইউজার-ডিফাইনড ডেটা টাইপের জন্য সেট (Set)


এখানে আমরা দেখব কিভাবে ইউজার-ডিফাইনড ডেটা টাইপের জন্য সেট (set) তৈরি করা যায়। C++ STL-এ set একটি বিশেষ ডেটা স্ট্রাকচার যা ডেটা সর্টেড অর্ডারে সংরক্ষণ করে এবং ডুপ্লিকেট এন্ট্রি অনুমতি দেয় না। আমরা যেকোনো টাইপের ডেটার জন্য set ব্যবহার করতে পারি, এখানে ইউজার-ডিফাইনড টাইপের জন্য দেখাব।

ইউজার-ডিফাইনড টাইপ সেটে ব্যবহার করতে হলে < অপারেটর ওভাররাইড করতে হয় যাতে দুটি অবজেক্ট তুলনা করা যায়। যদি এটি না থাকে, তবে সেট সর্টেড অর্ডারে ডেটা সংরক্ষণ করতে পারবে না এবং এক্সেপশন ফেলবে।

উদাহরণ

#include <iostream>
#include <set>
using namespace std;

class Student {
    int id, marks;
public:
    Student(int id, int marks) {
        this->id = id;
        this->marks = marks;
    }
    bool operator <(const Student& st) const { // id দিয়ে সর্ট
        return (this->id < st.id);
    }
    void display() const {
        cout << "(" << id << ", " << marks << ")\n";
    }
};

int main() {
    Student s1(5, 70), s2(3, 86), s3(2, 91), s4(2, 60), s5(1, 78), s6(6, 53), s7(4, 59);
    // ডুপ্লিকেট id সেট বিবেচনা করবে না
    set<Student> st_set;
    st_set.insert(s1);
    st_set.insert(s2);
    st_set.insert(s3);
    st_set.insert(s4);
    st_set.insert(s5);
    st_set.insert(s6);
    st_set.insert(s7);
    for (auto it = st_set.begin(); it != st_set.end(); it++) {
        it->display();
    }
    return 0;
}

আউটপুট

(1, 78) (2, 91) (3, 86) (4, 59) (5, 70) (6, 53)

  1. লিনাক্সে C++-এর জন্য সেরা IDE কী? (আলাদা লেখা)

  2. উইন্ডোজে C++-এর জন্য সেরা IDE কী? (আলাদা লেখা)

  3. C++-এ বুলিয়ান টাইপ স্পেসিফায়ার

  4. C#-এ ডাইনামিক ডেটা টাইপ সংজ্ঞায়িত করা