Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

मानचित्र में अवरोही क्रम और C++ STL का मल्टीमैप

आम तौर पर, तत्वों को संग्रहीत करने के लिए मानचित्र और मल्टीमैप मानचित्र का डिफ़ॉल्ट व्यवहार आरोही क्रम में होता है। लेकिन हम अधिक फ़ंक्शन का उपयोग करके तत्व को अवरोही क्रम में संग्रहीत कर सकते हैं।

मानचित्र अवरोही क्रम में:

यहां कार्यों का उपयोग किया जाता है -

  • m::find() - मानचित्र में कुंजी मान 'बी' वाले तत्व के लिए एक पुनरावर्तक लौटाता है, अन्यथा पुनरावर्तक को समाप्त करने के लिए लौटाता है।

  • m::erase() - मानचित्र से मुख्य मान को हटाता है।

  • m::बराबर_रेंज () - जोड़े का एक पुनरावर्तक देता है। जोड़ी एक श्रेणी की सीमाओं को संदर्भित करती है जिसमें कंटेनर के सभी तत्व शामिल होते हैं जिनमें कुंजी के बराबर कुंजी होती है।

  • एम इन्सर्ट () - मानचित्र कंटेनर में तत्वों को सम्मिलित करने के लिए।

  • एम आकार () - मानचित्र कंटेनर में तत्वों की संख्या लौटाता है।

  • एम काउंट () - मैप में मुख्य मान 'a' या 'f' वाले एलीमेंट से मेल खाने वाले तत्वों की संख्या लौटाता है।

उदाहरण कोड

#include <iostream>
#include <map>
#include <string>
using namespace std;
int main () {
   map<char, int,greater <int>> m;
   map<char, int>::iterator it;
   m.insert (pair<char, int>('a', 10));
   m.insert (pair<char, int>('b', 20));
   m.insert (pair<char, int>('c', 30));
   m.insert (pair<char, int>('d', 40));
   cout<<"Size of the map: "<< m.size() <<endl;
   cout << "map contains:\n";
   for (it = m.begin(); it != m.end(); ++it)
      cout << (*it).first << " => " << (*it).second << '\n';
   for (char c = 'a'; c <= 'd'; c++) {
      cout << "There are " << m.count(c) << " element(s) with key " << c << ":";
      map<char, int>::iterator it;
      for (it = m.equal_range(c).first; it != m.equal_range(c).second; ++it)
         cout << ' ' << (*it).second;
      cout << endl;
   }
   if (m.count('a'))
      cout << "The key a is present\n";
   else
      cout << "The key a is not present\n";
   if (m.count('f'))
      cout << "The key f is present\n";
   else
      cout << "The key f is not present\n";
      it = m.find('b');
      m.erase (it);
      cout<<"Size of the map: "<<m.size()<<endl;
   cout << "map contains:\n";
   for (it = m.begin(); it != m.end(); ++it)
      cout << (*it).first << " => " << (*it).second << '\n';
   return 0;
}

आउटपुट

Size of the map: 4
map contains:
d => 40
c => 30
b => 20
a => 10
There are 1 element(s) with key a: 10
There are 1 element(s) with key b: 20
There are 1 element(s) with key c: 30
There are 1 element(s) with key d: 40
The key a is present
The key f is not present
Size of the map: 3
map contains:
d => 40
c => 30
a => 10

मल्टीमैप अवरोही क्रम में:

कार्यों का यहां उपयोग किया जाता है:

  • मिमी::ढूंढें () - मल्टीमैप में कुंजी मान 'बी' वाले तत्व के लिए एक पुनरावर्तक लौटाता है, अन्यथा पुनरावर्तक को समाप्त करने के लिए लौटाता है।

  • मिमी::मिटाएं () - मल्टीमैप से मुख्य मान को हटाता है।

  • मिमी::बराबर_रेंज () - जोड़े का एक पुनरावर्तक देता है। जोड़ी एक श्रेणी की सीमाओं को संदर्भित करती है जिसमें कंटेनर के सभी तत्व शामिल होते हैं जिनमें कुंजी के बराबर कुंजी होती है।

  • मिमी डालें () - मल्टीमैप कंटेनर में तत्वों को सम्मिलित करने के लिए।

  • मिमी आकार () - मल्टीमैप कंटेनर में तत्वों की संख्या लौटाता है।


उदाहरण कोड

#include <iostream>
#include <map>
#include <string>
using namespace std;
int main () {
   multimap<char, int,greater <char>> mm;
   multimap<char, int>::iterator it;
   mm.insert (pair<char, int>('a', 10));
   mm.insert (pair<char, int>('b', 20));
   mm.insert (pair<char, int>('a', 30));
   mm.insert (pair<char, int>('b', 40));
   cout<<"Size of the multimap: "<< mm.size() <<endl;
   cout << "multimap contains:\n";
   for (it = mm.begin(); it != mm.end(); ++it)
      cout << (*it).first << " => " << (*it).second << '\n';
   for (char c = 'a'; c <= 'd'; c++) {
      cout << "There are " << mm.count(c) << " elements with key " << c << ":";
      map<char, int>::iterator it;
    for (it = mm.equal_range(c).first; it != mm.equal_range(c).second; ++it)
      cout << ' ' << (*it).second;
      cout << endl;
   }
   if (mm.count('a'))
      cout << "The key a is present\n";
   else
      cout << "The key a is not present\n";
   if (mm.count('f'))
      cout << "The key f is present\n";
   else
      cout << "The key f is not present\n";
   it = mm.find('b');
   mm.erase (it);
   cout<<"Size of the multimap: "<<mm.size()<<endl;
   cout << "multiap contains:\n";
   for (it = mm.begin(); it != mm.end(); ++it)
      cout << (*it).first << " => " << (*it).second << '\n';
   return 0;
}

आउटपुट

Size of the multimap: 4
multimap contains:
b => 20
b => 40
a => 10
a => 30
There are 2 elements with key a: 10 30
There are 2 elements with key b: 20 40
There are 0 elements with key c:
There are 0 elements with key d:
The key a is present
The key f is not present
Size of the multimap: 3
multiap contains:
b => 40
a => 10
a => 30

  1. C++ STL में cbegin () और cend () फ़ंक्शन को मैप करें

    इस लेख में हम C++ STL में काम करने, वाक्य रचना और map::cbegin() और map::cend() फ़ंक्शंस के उदाहरणों पर चर्चा करेंगे। C++ STL में मैप क्या है? मानचित्र सहयोगी कंटेनर हैं, जो एक विशिष्ट क्रम में कुंजी मान और मैप किए गए मान के संयोजन से बने तत्वों को संग्रहीत करने की सुविधा प्रदान करते हैं। मैप कंटेनर

  1. सी ++ एसटीएल में नक्शा जगह ()

    इस लेख में हम C++ STL में काम करने, वाक्य रचना और map::emplace() फ़ंक्शन के उदाहरणों पर चर्चा करेंगे। C++ STL में मैप क्या है? मानचित्र सहयोगी कंटेनर हैं, जो एक विशिष्ट क्रम में कुंजी मान और मैप किए गए मान के संयोजन से बने तत्वों को संग्रहीत करने की सुविधा प्रदान करते हैं। मैप कंटेनर में डेटा को हम

  1. सी ++ एसटीएल में बनाम मानचित्र सेट करें

    सेट एक सार डेटा प्रकार है जिसमें प्रत्येक तत्व को अद्वितीय होना चाहिए क्योंकि तत्व का मान इसकी पहचान करता है। तत्व के मूल्य को एक बार सेट में जोड़ने के बाद संशोधित नहीं किया जा सकता है, लेकिन उस तत्व के संशोधित मूल्य को हटाना और जोड़ना संभव है। नक्शा एक सहयोगी कंटेनर है जो मैप किए गए फैशन में तत्वो