यहां हम देखेंगे कि हम यूजर-डिफाइन्ड डेटा टाइप के लिए सेट कैसे बना सकते हैं। सेट C++ STL में मौजूद है। यह एक विशेष प्रकार की डेटा स्ट्रक्चर है, यह डेटा को सॉर्टेड ऑर्डर में संग्रहीत कर सकती है, और डुप्लिकेट एंट्री का समर्थन नहीं करती। हम किसी भी प्रकार के डेटा के लिए सेट का उपयोग कर सकते हैं, लेकिन यहां हम देखेंगे कि हम यूजर-डिफाइन्ड डेटा टाइप के लिए भी सेट का उपयोग कैसे कर सकते हैं।
स्टैक में यूजर-डिफाइन्ड डेटा टाइप का उपयोग करने के लिए, हमें < ऑपरेटर को ओवरराइड करना होगा, जो उस प्रकार के दो मानों की तुलना कर सके। यदि यह मौजूद नहीं है, तो यह दो ऑब्जेक्ट्स की तुलना नहीं कर सकता, इसलिए सेट डेटा को सॉर्टेड ऑर्डर में संग्रहीत नहीं कर सकता, इसलिए अपवाद उठाएगा।
उदाहरण
#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"; } }; 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); set<Student>::iterator it; for(it = st_set.begin(); it != st_set.end(); it++){ it->display(); } }
आउटपुट
(1, 78) (2, 91) (3, 86) (4, 59) (5, 70) (6, 53)