C++ STL में Multimap क्या है?
Multimap एक associative container है जो map container के समान होता है। यह key-value और mapped value के संयोजन से बने तत्वों को एक विशिष्ट क्रम में संग्रहीत करता है। एक multimap container में एक ही key से जुड़े कई तत्व हो सकते हैं। डेटा आंतरिक रूप से हमेशा उससे जुड़ी keys की मदद से सॉर्ट किया जाता है।
multimap::insert() क्या है?
multimap::insert() C++ STL में एक अंतर्निहित फंक्शन है, जो <map> हेडर फाइल में परिभाषित है। insert() का उपयोग multimap container में नए मान सम्मिलित करने के लिए किया जाता है और सम्मिलित तत्वों की संख्या से container का आकार बढ़ जाता है।
एक map container के विपरीत जो जांचता है कि संबंधित key पहले से मौजूद है तो तत्व सम्मिलित नहीं करेगा, लेकिन multimap में एक ही key से कई तत्वों को जोड़ने की सुविधा होती है।
इसलिए, जब भी हम एक तत्व सम्मिलित करते हैं तो वह अपने key के अनुसार अपनी संबंधित स्थिति पर चला जाता है।
सिंटैक्स
multiMap_name.insert({key& k, value_type& val});
multiMap_name.insert(iterator& it, {key& k, value_type& val});
multiMap_name.insert(iterator& position1, iterator& position2);
multimap_name.insert(initializer_list <value_type> il);
पैरामीटर
k - यह वह key है जो तत्व से जुड़ी होती है। फंक्शन जांचता है कि क्या key पहले से container में है तो यह तत्व सम्मिलित नहीं करता।
val - वह मान जिसे सम्मिलित किया जाना है।
it - iterator प्रकार का मान जिसका उपयोग उस स्थिति को देने के लिए किया जाता है जहां हम तत्व सम्मिलित करना चाहते हैं।
position1, position2 - position1 प्रारंभिक स्थिति है और position2 अंतिम स्थिति है जब हम तत्वों की श्रृंखला सम्मिलित करना चाहते हैं, हम कई तत्वों की range का उपयोग कर सकते हैं जिन्हें हम सम्मिलित करना चाहते हैं।
il - यह वह initializer list है जिसमें वे तत्व होते हैं जिन्हें हम container में प्रारंभ करना चाहते हैं।
रिटर्न वैल्यू
यह फंक्शन map container में नए सम्मिलित तत्व पर एक iterator लौटाता है।
उदाहरण
// दिए गए स्थान पर दिए गए key के साथ सम्मिलित करना
#include <bits/stdc++.h>
using namespace std;
int main() {
multimap<int, int> mul;
// multimap में तत्व सम्मिलित करना
mul.insert({1, 10});
mul.insert({2, 20});
mul.insert({3, 30});
mul.insert({4, 40});
mul.insert({5, 50});
// multimap तत्व प्रदर्शित करना
cout << "Elements in multimap is: \n";
cout << "KEY\tELEMENT\n";
for (auto it = mul.begin(); it != mul.end(); ++it) {
cout << it->first << '\t' << it->second << '\n';
}
return 0;
}
आउटपुट
Elements in multimap is: KEY ELEMENT 1 10 2 20 3 30 4 40 5 50
उदाहरण
// दिए गए key के बाद तत्व सम्मिलित करना
#include <bits/stdc++.h>
using namespace std;
int main() {
multimap<int, int> mul;
// multimap में तत्व सम्मिलित करना
mul.insert({1, 10});
mul.insert({2, 20});
mul.insert({3, 30});
mul.insert({5, 40});
mul.insert({6, 50});
// उस तत्व को ढूंढना जिसके बाद हम सम्मिलित करेंगे
auto i = mul.find(3);
mul.insert(i, {4, 90});
// तत्व प्रिंट करें
cout << "KEY\tELEMENT\n";
for (auto itr = mul.begin(); itr != mul.end(); ++itr) {
cout << itr->first << '\t' << itr->second << '\n';
}
return 0;
}
आउटपुट
KEY ELEMENT 1 10 2 20 3 30 4 90 5 40 6 50