अनऑर्डरेड एसोसिएटिव कंटेनर (सी ++): Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
{{C++ Standard Library}} | {{C++ Standard Library}} | ||
प्रोग्रामिंग भाषा C++ में, अनऑर्डरेड एसोसिएटिव कंटेनर [[सी ++ मानक पुस्तकालय]] में क्लास टेम्प्लेट का समूह है जो [[ हैश तालिका ]] वेरिएंट को कार्यान्वित करता है। टेम्प्लेट के कारण उनका उपयोग आर्बिट्ररी एलिमेंट्स जैसे पूर्णांक अथवा कस्टम क्लासेज को संग्रहीत करने के लिए किया जा सकता है। निम्नलिखित कंटेनरों <code>unordered_set</code>, <code>unordered_map</code>, <code>unordered_multiset</code>, <code>unordered_multimap</code> को [[सी ++]] मानक के वर्तमान संशोधन में परिभाषित किया गया है। इनमें से प्रत्येक कंटेनर मात्र उनके एलिमेंट्स के कॉन्सट्रेन्ट्स पर भिन्न होता है। | प्रोग्रामिंग भाषा C++ में, अनऑर्डरेड एसोसिएटिव कंटेनर [[सी ++ मानक पुस्तकालय|C ++ मानक पुस्तकालय]] में क्लास टेम्प्लेट का समूह है जो [[ हैश तालिका ]] वेरिएंट को कार्यान्वित करता है। टेम्प्लेट के कारण उनका उपयोग आर्बिट्ररी एलिमेंट्स जैसे पूर्णांक अथवा कस्टम क्लासेज को संग्रहीत करने के लिए किया जा सकता है। निम्नलिखित कंटेनरों <code>unordered_set</code>, <code>unordered_map</code>, <code>unordered_multiset</code>, <code>unordered_multimap</code> को [[सी ++|C ++]] मानक के वर्तमान संशोधन में परिभाषित किया गया है। इनमें से प्रत्येक कंटेनर मात्र उनके एलिमेंट्स के कॉन्सट्रेन्ट्स पर भिन्न होता है। | ||
अनऑर्डरेड [[सहयोगी कंटेनर|एसोसिएटिव कंटेनर]] सी ++ मानक पुस्तकालय में एसोसिएटिव कंटेनर के समतुल्य होते हैं किन्तु उनके कॉन्सट्रेन्ट्स भिन्न-भिन्न होते हैं। अनऑर्डरेड एसोसिएटिव कंटेनरों में एलिमेंट्स उचित रूप से क्रमबद्ध नहीं होते हैं। यह ऑब्जेक्ट्स को स्टोर करने के लिए हैशिंग के उपयोग के कारण होता है। कंटेनरों को अभी भी रेगुलर एसोसिएटिव कंटेनर की भाँति इटरेट किया जा सकता है। | अनऑर्डरेड [[सहयोगी कंटेनर|एसोसिएटिव कंटेनर]] सी ++ मानक पुस्तकालय में एसोसिएटिव कंटेनर के समतुल्य होते हैं किन्तु उनके कॉन्सट्रेन्ट्स भिन्न-भिन्न होते हैं। अनऑर्डरेड एसोसिएटिव कंटेनरों में एलिमेंट्स उचित रूप से क्रमबद्ध नहीं होते हैं। यह ऑब्जेक्ट्स को स्टोर करने के लिए हैशिंग के उपयोग के कारण होता है। कंटेनरों को अभी भी रेगुलर एसोसिएटिव कंटेनर की भाँति इटरेट किया जा सकता है। | ||
Line 8: | Line 8: | ||
== इतिहास == | == इतिहास == | ||
सी ++ भाषा में हैश टेबल का प्रथम व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन [[सिलिकॉन ग्राफिक्स]] (एसजीआई) [[मानक टेम्पलेट लाइब्रेरी|स्टैण्डर्ड टेम्पलेट लाइब्रेरी]] (एसटीएल) के <code>hash_map</code>, <code>hash_set</code>, <code>hash_multimap</code>, <code>hash_multiset</code> क्लास टेम्पलेट्स थे।<ref>{{cite web |url= http://www.sgi.com/tech/stl/hash_map.html |title=hash_map<Key, Data, HashFcn, EqualKey, Alloc> |publisher=[[Silicon Graphics]] (SGI) |access-date=26 January 2011}}</ref> उनकी उपयोगिता के कारण, उन्हें C++ मानक लाइब्रेरी के विभिन्न अन्य कार्यान्वयनों (उदाहरण के लिए, [[जीएनयू संकलक संग्रह]] (जीसीसी) [[libstdc++]]<ref>{{cite web |url=https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/class____gnu__cxx_1_1hash__map.html |title=libstdc++: hash_map Class Template Reference |access-date=26 January 2011}}</ref> और [[ विजुअल सी ++ ]] (एमएसवीसी) मानक लाइब्रेरी) में सम्मिलित किया गया है। <code>hash_*</code> क्लास टेम्प्लेट [[सी ++ तकनीकी रिपोर्ट 1]] (C++ TR1) में प्रस्तावित किए गए थे और <code>unordered_*</code> नामों के अंतर्गत स्वीकार किए गए थे।<ref>{{cite web |title=A Proposal to Add Hash Tables to the Standard Library (revision 4) |author=WG21 |date=9 April 2003 |url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1456.html |id=n1456}}</ref> जिसके पश्चात उन्हें C++ मानक के [[C++11]] संशोधन में सम्मिलित किया गया था।<ref name="n3126">{{citation|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf |title=Working Draft, Standard for Programming Language C++ |author=WG21 |date=21 August 2010 |id=n3126}}</ref> बूस्ट [[सी ++ पुस्तकालयों को बढ़ावा दें| | सी ++ भाषा में हैश टेबल का प्रथम व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन [[सिलिकॉन ग्राफिक्स]] (एसजीआई) [[मानक टेम्पलेट लाइब्रेरी|स्टैण्डर्ड टेम्पलेट लाइब्रेरी]] (एसटीएल) के <code>hash_map</code>, <code>hash_set</code>, <code>hash_multimap</code>, <code>hash_multiset</code> क्लास टेम्पलेट्स थे।<ref>{{cite web |url= http://www.sgi.com/tech/stl/hash_map.html |title=hash_map<Key, Data, HashFcn, EqualKey, Alloc> |publisher=[[Silicon Graphics]] (SGI) |access-date=26 January 2011}}</ref> उनकी उपयोगिता के कारण, उन्हें C++ मानक लाइब्रेरी के विभिन्न अन्य कार्यान्वयनों (उदाहरण के लिए, [[जीएनयू संकलक संग्रह]] (जीसीसी) [[libstdc++]]<ref>{{cite web |url=https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/class____gnu__cxx_1_1hash__map.html |title=libstdc++: hash_map Class Template Reference |access-date=26 January 2011}}</ref> और [[ विजुअल सी ++ ]] (एमएसवीसी) मानक लाइब्रेरी) में सम्मिलित किया गया है। <code>hash_*</code> क्लास टेम्प्लेट [[सी ++ तकनीकी रिपोर्ट 1|C ++ तकनीकी रिपोर्ट 1]] (C++ TR1) में प्रस्तावित किए गए थे और <code>unordered_*</code> नामों के अंतर्गत स्वीकार किए गए थे।<ref>{{cite web |title=A Proposal to Add Hash Tables to the Standard Library (revision 4) |author=WG21 |date=9 April 2003 |url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1456.html |id=n1456}}</ref> जिसके पश्चात उन्हें C++ मानक के [[C++11]] संशोधन में सम्मिलित किया गया था।<ref name="n3126">{{citation|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf |title=Working Draft, Standard for Programming Language C++ |author=WG21 |date=21 August 2010 |id=n3126}}</ref> बूस्ट [[सी ++ पुस्तकालयों को बढ़ावा दें|C++ लाइब्रेरी]] में <code><boost/unordered_map.hpp></code> के रूप में भी उपलब्ध है। <ref>{{cite web |publisher=Boost |title=Class template unordered_map |url=http://www.boost.org/doc/libs/1_45_0/doc/html/boost/unordered_map.html |access-date=26 January 2011}}</ref> | ||
Line 29: | Line 29: | ||
| [http://en.cppreference.com/w/cpp/container/unordered_multiset/unordered_multiset (constructor)] | | [http://en.cppreference.com/w/cpp/container/unordered_multiset/unordered_multiset (constructor)] | ||
| [http://en.cppreference.com/w/cpp/container/unordered_multimap/unordered_multimap (constructor)] | | [http://en.cppreference.com/w/cpp/container/unordered_multimap/unordered_multimap (constructor)] | ||
| | | विभिन्न स्रोतों से कंटेनर का निर्माण करता है। | ||
|- | |- | ||
| [http://en.cppreference.com/w/cpp/container/unordered_set/~unordered_set (destructor)] | | [http://en.cppreference.com/w/cpp/container/unordered_set/~unordered_set (destructor)] | ||
Line 35: | Line 35: | ||
| [http://en.cppreference.com/w/cpp/container/unordered_multiset/~unordered_multiset (destructor)] | | [http://en.cppreference.com/w/cpp/container/unordered_multiset/~unordered_multiset (destructor)] | ||
| [http://en.cppreference.com/w/cpp/container/unordered_multimap/~unordered_multimap (destructor)] | | [http://en.cppreference.com/w/cpp/container/unordered_multimap/~unordered_multimap (destructor)] | ||
| | | सेट और निहित एलिमेंट्स को नष्ट कर देता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/operator= operator=]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/operator= operator=]</code> | ||
Line 41: | Line 41: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/operator= operator=]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/operator= operator=]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/operator= operator=]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/operator= operator=]</code> | ||
| | | कंटेनर को वैल्यू असाइन करता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/get_allocator get_allocator]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/get_allocator get_allocator]</code> | ||
Line 47: | Line 47: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/get_allocator get_allocator]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/get_allocator get_allocator]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/get_allocator get_allocator]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/get_allocator get_allocator]</code> | ||
| | | एलिमेंट्स को मेमोरी एलोकेट करने के लिए प्रयुक्त एलोकेटर रिटर्न करता है। | ||
|- | |- | ||
! rowspan=2 | Element access | ! rowspan=2 | Element access | ||
Line 54: | Line 54: | ||
| {{n/a}} | | {{n/a}} | ||
| {{n/a}} | | {{n/a}} | ||
| | | बाउंड चेकिंग के साथ निर्दिष्ट एलिमेंट्स को एक्सेस करता है। | ||
|- | |- | ||
| {{n/a}} | | {{n/a}} | ||
Line 60: | Line 60: | ||
| {{n/a}} | | {{n/a}} | ||
| {{n/a}} | | {{n/a}} | ||
| | | बाउंड चेकिंग के अतिरिक्त निर्दिष्ट एलिमेंट्स को एक्सेस करता है। | ||
|- | |- | ||
! rowspan=2 | Iterators | ! rowspan=2 | Iterators | ||
Line 67: | Line 67: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/begin begin]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/begin begin]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/begin begin]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/begin begin]</code> | ||
| | | कंटेनर के प्रारम्भ में इटरेटर रिटर्न करता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/end end]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/end end]</code> | ||
Line 73: | Line 73: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/end end]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/end end]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/end end]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/end end]</code> | ||
| | | कंटेनर के अंत में इटरेटर रिटर्न करता है। | ||
|- | |- | ||
! rowspan=3 | Capacity | ! rowspan=3 | Capacity | ||
Line 80: | Line 80: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/empty empty]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/empty empty]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/empty empty]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/empty empty]</code> | ||
| | | चेक करता है कि क्या कंटेनर रिक्त है | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/size size]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/size size]</code> | ||
Line 86: | Line 86: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/size size]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/size size]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/size size]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/size size]</code> | ||
| | | कंटेनर में एलिमेंट्स की संख्या रिटर्न करता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/max_size max_size]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/max_size max_size]</code> | ||
Line 92: | Line 92: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/max_size max_size]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/max_size max_size]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/max_size max_size]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/max_size max_size]</code> | ||
| | | कंटेनर में एलिमेंट्स की अधिकतम संभव संख्या रिटर्न करता है। | ||
|- | |- | ||
! rowspan=6 | Modifiers | ! rowspan=6 | Modifiers | ||
Line 99: | Line 99: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/clear clear]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/clear clear]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/clear clear]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/clear clear]</code> | ||
| | | कंटेंट्स को क्लियर करता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/insert insert]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/insert insert]</code> | ||
Line 105: | Line 105: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/insert insert]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/insert insert]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/insert insert]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/insert insert]</code> | ||
| | | एलिमेंट्स को इन्सर्ट करता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/emplace emplace]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/emplace emplace]</code> | ||
Line 123: | Line 123: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/erase erase]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/erase erase]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/erase erase]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/erase erase]</code> | ||
| | | एलिमेंट्स को इरेज करता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/swap swap]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/swap swap]</code> | ||
Line 129: | Line 129: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/swap swap]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/swap swap]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/swap swap]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/swap swap]</code> | ||
| | | कंटेंट्स को दूसरे कंटेनर से स्वैप करता है। | ||
|- | |- | ||
! rowspan=3 | Lookup | ! rowspan=3 | Lookup | ||
Line 136: | Line 136: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/count count]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/count count]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/count count]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/count count]</code> | ||
| | | विशिष्ट कुंजी से युग्मित होने वाले एलिमेंट्स की संख्या रिटर्न करता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/find find]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/find find]</code> | ||
Line 142: | Line 142: | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/find find]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multiset/find find]</code> | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/find find]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_multimap/find find]</code> | ||
| | | विशिष्ट कुंजी के साथ एलिमेंट को फाइंड करता है। | ||
|- | |- | ||
| <code>[http://en.cppreference.com/w/cpp/container/unordered_set/equal_range equal_range]</code> | | <code>[http://en.cppreference.com/w/cpp/container/unordered_set/equal_range equal_range]</code> |
Revision as of 15:41, 18 May 2023
C++ Standard Library |
---|
Containers |
C standard library |
प्रोग्रामिंग भाषा C++ में, अनऑर्डरेड एसोसिएटिव कंटेनर C ++ मानक पुस्तकालय में क्लास टेम्प्लेट का समूह है जो हैश तालिका वेरिएंट को कार्यान्वित करता है। टेम्प्लेट के कारण उनका उपयोग आर्बिट्ररी एलिमेंट्स जैसे पूर्णांक अथवा कस्टम क्लासेज को संग्रहीत करने के लिए किया जा सकता है। निम्नलिखित कंटेनरों unordered_set
, unordered_map
, unordered_multiset
, unordered_multimap
को C ++ मानक के वर्तमान संशोधन में परिभाषित किया गया है। इनमें से प्रत्येक कंटेनर मात्र उनके एलिमेंट्स के कॉन्सट्रेन्ट्स पर भिन्न होता है।
अनऑर्डरेड एसोसिएटिव कंटेनर सी ++ मानक पुस्तकालय में एसोसिएटिव कंटेनर के समतुल्य होते हैं किन्तु उनके कॉन्सट्रेन्ट्स भिन्न-भिन्न होते हैं। अनऑर्डरेड एसोसिएटिव कंटेनरों में एलिमेंट्स उचित रूप से क्रमबद्ध नहीं होते हैं। यह ऑब्जेक्ट्स को स्टोर करने के लिए हैशिंग के उपयोग के कारण होता है। कंटेनरों को अभी भी रेगुलर एसोसिएटिव कंटेनर की भाँति इटरेट किया जा सकता है।
इतिहास
सी ++ भाषा में हैश टेबल का प्रथम व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन सिलिकॉन ग्राफिक्स (एसजीआई) स्टैण्डर्ड टेम्पलेट लाइब्रेरी (एसटीएल) के hash_map
, hash_set
, hash_multimap
, hash_multiset
क्लास टेम्पलेट्स थे।[1] उनकी उपयोगिता के कारण, उन्हें C++ मानक लाइब्रेरी के विभिन्न अन्य कार्यान्वयनों (उदाहरण के लिए, जीएनयू संकलक संग्रह (जीसीसी) libstdc++[2] और विजुअल सी ++ (एमएसवीसी) मानक लाइब्रेरी) में सम्मिलित किया गया है। hash_*
क्लास टेम्प्लेट C ++ तकनीकी रिपोर्ट 1 (C++ TR1) में प्रस्तावित किए गए थे और unordered_*
नामों के अंतर्गत स्वीकार किए गए थे।[3] जिसके पश्चात उन्हें C++ मानक के C++11 संशोधन में सम्मिलित किया गया था।[4] बूस्ट C++ लाइब्रेरी में <boost/unordered_map.hpp>
के रूप में भी उपलब्ध है। [5]
फंक्शन्स का अवलोकन
कंटेनरों को हेडर में डिफाइन किया जाता है, उदाहरण के लिए, unordered_set
को हेडर <unordered_set>
में डिफाइन किया गया है। सभी कंटेनर कांसेप्ट (जेनेरिक प्रोग्रामिंग) की आवश्यकताओं को पूर्ण करते हैं, जिसका अर्थ है कि उनके निकट begin()
, end()
, size()
, max_size()
, empty()
, और swap()
विधियाँ हैं।
unordered_set (C++11) |
unordered_map (C++11) |
unordered_multiset (C++11) |
unordered_multimap (C++11) |
Description | |
---|---|---|---|---|---|
(constructor) | (constructor) | (constructor) | (constructor) | विभिन्न स्रोतों से कंटेनर का निर्माण करता है। | |
(destructor) | (destructor) | (destructor) | (destructor) | सेट और निहित एलिमेंट्स को नष्ट कर देता है। | |
operator=
|
operator=
|
operator=
|
operator=
|
कंटेनर को वैल्यू असाइन करता है। | |
get_allocator
|
get_allocator
|
get_allocator
|
get_allocator
|
एलिमेंट्स को मेमोरी एलोकेट करने के लिए प्रयुक्त एलोकेटर रिटर्न करता है। | |
Element access | — | at
|
— | — | बाउंड चेकिंग के साथ निर्दिष्ट एलिमेंट्स को एक्सेस करता है। |
— | operator[]
|
— | — | बाउंड चेकिंग के अतिरिक्त निर्दिष्ट एलिमेंट्स को एक्सेस करता है। | |
Iterators | begin
|
begin
|
begin
|
begin
|
कंटेनर के प्रारम्भ में इटरेटर रिटर्न करता है। |
end
|
end
|
end
|
end
|
कंटेनर के अंत में इटरेटर रिटर्न करता है। | |
Capacity | empty
|
empty
|
empty
|
empty
|
चेक करता है कि क्या कंटेनर रिक्त है |
size
|
size
|
size
|
size
|
कंटेनर में एलिमेंट्स की संख्या रिटर्न करता है। | |
max_size
|
max_size
|
max_size
|
max_size
|
कंटेनर में एलिमेंट्स की अधिकतम संभव संख्या रिटर्न करता है। | |
Modifiers | clear
|
clear
|
clear
|
clear
|
कंटेंट्स को क्लियर करता है। |
insert
|
insert
|
insert
|
insert
|
एलिमेंट्स को इन्सर्ट करता है। | |
emplace
|
emplace
|
emplace
|
emplace
|
Constructs elements in-place (C++11) | |
emplace_hint
|
emplace_hint
|
emplace_hint
|
emplace_hint
|
Constructs elements in-place using a hint (C++11) | |
erase
|
erase
|
erase
|
erase
|
एलिमेंट्स को इरेज करता है। | |
swap
|
swap
|
swap
|
swap
|
कंटेंट्स को दूसरे कंटेनर से स्वैप करता है। | |
Lookup | count
|
count
|
count
|
count
|
विशिष्ट कुंजी से युग्मित होने वाले एलिमेंट्स की संख्या रिटर्न करता है। |
find
|
find
|
find
|
find
|
विशिष्ट कुंजी के साथ एलिमेंट को फाइंड करता है। | |
equal_range
|
equal_range
|
equal_range
|
equal_range
|
Returns a range of elements matching specific key. | |
Bucket interface | ... | ||||
Hash policy | ... | ||||
Observers | hash_function
|
hash_function
|
hash_function
|
hash_function
|
Returns the function used to create hash of a key |
key_eq
|
key_eq
|
key_eq
|
key_eq
|
Returns key comparison function. |
उपयोग उदाहरण
#include <iostream>
#include <string>
#include <unordered_map>
int main()
{
std::unordered_map<std::string, int> months;
months["january"] = 31;
months["february"] = 28;
months["march"] = 31;
months["april"] = 30;
months["may"] = 31;
months["june"] = 30;
months["july"] = 31;
months["august"] = 31;
months["september"] = 30;
months["october"] = 31;
months["november"] = 30;
months["december"] = 31;
std::cout << "september -> " << months["september"] << std::endl;
std::cout << "april -> " << months["april"] << std::endl;
std::cout << "december -> " << months["december"] << std::endl;
std::cout << "february -> " << months["february"] << std::endl;
return 0;
}
कस्टम हैश फ़ंक्शंस
Std :: unordered_map में कस्टम ऑब्जेक्ट्स का उपयोग करने के लिए, कस्टम हैश फ़ंक्शन को परिभाषित किया जाना चाहिए। यह फ़ंक्शन कस्टम प्रकार का कॉन्स्ट रिफरेन्स लेता है और size_t रिटर्न करता है।
#include <unordered_map>
struct X{int i,j,k;};
struct hash_X{
size_t operator()(const X &x) const{
return std::hash<int>()(x.i) ^ std::hash<int>()(x.j) ^ std::hash<int>()(x.k);
}
};
यूजर फंक्शन डिफाइन करता है जिसका उपयोग std :: unordered_map में टेम्पलेट पैरामीटर के रूप में पास करके किया जा सकता है
std::unordered_map<X,int,hash_X> my_map;
या std::hash फ़ंक्शन को डिफ़ॉल्ट हैश फ़ंक्शन के रूप में सेट किया जा सकता है
namespace std {
template <>
class hash<X>{
public :
size_t operator()(const X &x ) const{
return hash<int>()(x.i) ^ hash<int>()(x.j) ^ hash<int>()(x.k);
}
};
}
//...
std::unordered_map<X,int> my_map;
संदर्भ
- ↑ "hash_map<Key, Data, HashFcn, EqualKey, Alloc>". Silicon Graphics (SGI). Retrieved 26 January 2011.
- ↑ "libstdc++: hash_map Class Template Reference". Retrieved 26 January 2011.
- ↑ WG21 (9 April 2003). "A Proposal to Add Hash Tables to the Standard Library (revision 4)". n1456.
- ↑ WG21 (21 August 2010), Working Draft, Standard for Programming Language C++ (PDF), n3126
- ↑ "Class template unordered_map". Boost. Retrieved 26 January 2011.