यह वास्तव में क्या जांचता है इसमें शामिल हैं() और घटनाओं की संख्या की गणना नहीं, है ना? डुप्लिकेट की अनुमति नहीं है या तो इसमें शामिल नहीं होगा() गिनती() से बेहतर नाम हो सकता है?सी ++ एसटीएल इस प्रकार नामित कंटेनर की गिनती() विधि क्यों सेट है?
उत्तर
यह अन्य कंटेनर कक्षाओं के साथ संगत बनाने के लिए है, यह देखते हुए कि बहुरूपता के महान पहलुओं में से एक एक ही एपीआई के साथ विभिन्न वर्गों का इलाज करने में सक्षम होना है।
यह वास्तव में गिनती वापस करता है। तथ्य यह है कि गिनती केवल एक शून्य के लिए शून्य हो सकती है या उस पहलू को नहीं बदलेगी।
यह मूल रूप से संग्रह ऑब्जेक्ट से अलग नहीं है जो केवल एक ही समय में प्रत्येक "मान" की दो चीजों को अनुमति देता है। उस स्थिति में, यह शून्य, एक या दो की गिनती वापस कर देगा, लेकिन यह अभी भी एक गिनती है, जो एक सेट के समान है।
मानक के प्रासंगिक बात यह है कि यह जरूरी है C++11 23.2.4
जो साहचर्य कंटेनरों set
, multiset
, map
और multimap
बारे में बात करती है। टेबल 102 से अधिक इन साहचर्य कंटेनरों के लिए और "नियमित" कंटेनर के लिए आवश्यकताओं को ऊपर आवश्यकताओं को शामिल है, और count
के लिए थोड़ा नीचे दूसरे शब्दों में बयान किया गया है:
size_type a.count(k)
-k
की कुंजी बराबर के साथ तत्वों की संख्या देता है। जटिलताlog(a.size()) + a.count(k)
है।
'जटिलता लॉग (a.size()) + a.count (k) 'माध्य क्या है? यह रिकर्सिव लगता है :) – Cade
@ कैड, मैं थोड़ी देर के लिए चिंतित था कि मैं इसे गलत तरीके से लिखेगा लेकिन नहीं। यह * वास्तव में * रिकर्सिव नहीं है क्योंकि जटिलता की गणना करने के लिए 'a.count (k) 'को कॉल करने वाले फ़ंक्शन में कुछ भी नहीं है - यह केवल यह बता रहा है कि फ़ंक्शन की जटिलता कुंजी से मेल खाने वाले तत्वों की संख्या से प्रभावित होती है। – paxdiablo
हे, वाह, इतना सटीक। फॉलो अप क्यू का जवाब देने के लिए धन्यवाद। – Cade
यह कंटेनरों पर एक मानक संचालन है जो मिलान करने वाले तत्वों की संख्या देता है। सूचियों जैसी चीजों में, यह सही समझ में आता है। यह सिर्फ इतना है कि एक सेट पर, वहाँ केवल एक तत्व में से एक घटना हो सकता है और इसलिए count
एक मूल्य वापस कभी नहीं कर सकते हैं एक से अधिक 1.
"सूचियों जैसी चीजों में, यह सही समझ में आता है।" लेकिन std :: सूची में कोई गिनती विधि नहीं है। – StackedCrooked
आप सही हैं।मैं वास्तव में एक अन्य कंटेनर प्रकार का नाम देने के अपने प्रयास में हस्तशिल्प कर रहा था, विशेष रूप से एसटीएल में नहीं; बल्कि, बस * किसी * प्रकार जो कि अनुमानतः 'गिनती' विधि हो सकता है। @paxdiablo ने बहुत से विशिष्ट कंटेनरों का उल्लेख किया है जो * करते हैं * एक गिनती विधि है। – Gian
सभी साहचर्य कंटेनरों §23.2.4/8 में सूचीबद्ध शर्तें पूरी करनी होंगी तालिका 102 - सहयोगी कंटेनर आवश्यकताओं। इनमें से एक यह है कि वे a.count(k)
जो तब
रिटर्न कुंजी बराबर के साथ तत्वों की संख्या के k के
तो कारण सभी साहचर्य कंटेनरों के बीच एक सुसंगत इंटरफेस है लागू है। उदाहरण के लिए, जेनेरिक फ़ंक्शन टेम्पलेट्स लिखते समय यह एकरूपता बहुत महत्वपूर्ण होगी जो किसी भी सहयोगी कंटेनर के साथ काम करेगी।
- 1. सी ++ एसटीएल: एसटीएल कंटेनर पर पुनरावृत्ति की कौन सी विधि बेहतर है?
- 2. सी ++ एसटीएल कंटेनर
- 3. एसटीएल कंटेनर की बाइनरी संगतता
- 4. सी ++ एसटीएल कंटेनर में पॉलिमॉर्फिज्म
- 5. सी # इस प्रकार अनुमानित विधि कॉल अस्पष्ट क्यों है?
- 6. सी ++ में एसटीएल सेट की अंतर्निहित डेटा संरचना क्या है?
- 7. क्यों सी ++ एसटीएल
- 8. एसटीएल कंटेनर
- 9. ग्रहण सीडीटी एसटीएल कंटेनर
- 10. एसटीएल कंटेनर
- 11. एसटीएल कंटेनर में तत्व का प्रकार टाइप करें - सी ++
- 12. सी ++ एसटीएल सेट अंतर
- 13. एसटीएल बिटसेट :: गिनती() विधि का प्रदर्शन क्या है?
- 14. क्या एसटीएल एल्गोरिथ्म के वापसी प्रकार है "गिनती", एक valarray
- 15. एसटीएल-संगत कंटेनर
- 16. सी ++ एसटीएल मानचित्र कंटेनर ओ (लॉग (एन)) की जटिलता क्यों है?
- 17. सी ++ एसटीएल सेट: बाह्य राज्य
- 18. एसटीएल कंटेनर तत्व विनाश आदेश
- 19. एसटीएल सेट क्यों गिनती करता है() जब सभी तत्व अद्वितीय होना चाहिए?
- 20. सी ++ वर्चुअल विधि जो एसटीएल-स्टाइल इटरेटर
- 21. 'नामित प्रकार'
- 22. स्थिरांक और एसटीएल कंटेनर
- 23. एसटीएल कंटेनर कैसे फोल्ड करें?
- 24. डिस्क-समर्थित एसटीएल कंटेनर कक्षाएं?
- 25. प्राप्त करें (अपने) सी में इटरेटर प्रकार ++ (एसटीएल)
- 26. एसटीएल सेट
- 27. जावा में इस प्रकार की विधि ओवरराइडिंग क्या है?
- 28. क्यों इस प्रकार अशक्त घटनाओं
- 29. एसटीएल कंटेनर में लगातार संदर्भ
- 30. सी ++ एसटीएल प्रश्न: आवंटक
हां, यह थोड़ा उलझन में है क्योंकि सेट :: गिनती (वास्तव में 'शामिल' का काम करता है। शायद ऐतिहासिक कारणों से। – taocp
मुझे लगता है कि यह ['multiset'] (http://en.cppreference.com/w/cpp/container/multiset) इंटरफ़ेस से मेल खाता है, जहां डुप्लिकेट हो सकते हैं (और इस प्रकार 'गिनती()' वापस आ सकता है> 1)। हालांकि सकारात्मक नहीं है। – Xymostech
ब्ला ब्ला स्थिरता यह एक बेवकूफ नाम है! – Nils