इस ट्यूटोरियल में, हम C++ STL (स्टैंडर्ड टेम्प्लेट लाइब्रेरी) में मल्टीसेट को समझने के लिए एक प्रोग्राम पर चर्चा करेंगे।
मल्टीसेट सेट के समान सहयोगी कंटेनर हैं। मल्टीसेट होल्ड में एक अंतर यह है कि उनमें डुप्लिकेट मान भी हो सकते हैं।
उदाहरण
#include <iostream> #include <set> #include <iterator> using namespace std; int main(){ multiset <int, greater <int> > gquiz1; //inserting values gquiz1.insert(40); gquiz1.insert(30); gquiz1.insert(60); gquiz1.insert(20); gquiz1.insert(50); gquiz1.insert(50); gquiz1.insert(10); multiset <int, greater <int> > :: iterator itr; cout << "\nThe multiset gquiz1 is : "; for (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) { cout << '\t' << *itr; } cout << endl; multiset <int> gquiz2(gquiz1.begin(), gquiz1.end()); cout << "\nThe multiset gquiz2 after assign from gquiz1 is : "; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << '\t' << *itr; } cout << endl; cout << "\ngquiz2 after removal of elements less than 30 : "; gquiz2.erase(gquiz2.begin(), gquiz2.find(30)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << '\t' << *itr; } int num; num = gquiz2.erase(50); cout << "\ngquiz2.erase(50) : "; cout << num << " removed \t" ; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << '\t' << *itr; } cout << endl; cout << "gquiz1.lower_bound(40) : "<< *gquiz1.lower_bound(40) << endl; cout << "gquiz1.upper_bound(40) : "<< *gquiz1.upper_bound(40) << endl; cout << "gquiz2.lower_bound(40) : "<< *gquiz2.lower_bound(40) << endl; cout << "gquiz2.upper_bound(40) : "<< *gquiz2.upper_bound(40) << endl; return 0; }
आउटपुट
The multiset gquiz1 is : 60505040302010 The multiset gquiz2 after assign from gquiz1 is : 10203040505060 gquiz2 after removal of elements less than 30 : 3040505060 gquiz2.erase(50) : 2 removed 304060 gquiz1.lower_bound(40) : 40 gquiz1.upper_bound(40) : 30 gquiz2.lower_bound(40) : 40 gquiz2.upper_bound(40) : 60