एक इटरेटर बनाम इंडेक्स का उपयोग कर वेक्टर तत्वों तक पहुंचने में क्या फायदे हैं?एक इटरेटर बनाम इंडेक्स का उपयोग कर वेक्टर तत्वों को accesing के बीच क्या अंतर है?
उत्तर
इटेटरेट इंडेक्स से बेहतर क्यों हैं?
- उन मामलों में जहां इंडेक्स उपलब्ध नहीं है (जैसे std :: सूची, उदाहरण के लिए)।
- ऐसे मामले में जहां एक जेनेरिक फ़ंक्शन एक इटरेटर को स्वीकार करता है।
- एक फ़ंक्शन टेम्पलेट लिखते समय के साथ एक से अधिक कंटेनर प्रकार के साथ काम करना चाहिए।
- वे सभी कंटेनर और सभी मानक एल्गोरिदम में सभी कंटेनर 'iterators के साथ ही नियमित रूप से संकेत उपयोग करने की क्षमता के बीच एकरूपता बनाने के लिए मौजूद हैं।
- इटरेटर उन दृश्यों को इंगित कर सकते हैं जो अवधारणा को छोड़कर मौजूद नहीं हैं। उदाहरण के लिए, आप एक इटरेटर क्लास बना सकते हैं जो प्राइम संख्याओं के माध्यम से वास्तव में प्राइम्स का कंटेनर बनाने के बिना कदम उठा सकता है।
हालांकि, कंटेनर प्रकार है कि रैंडम एक्सेस (सूची, सेट, आदि) का समर्थन नहीं करते अनदेखी करता है, तो, iterators अभी भी
- सूचक अर्थ विज्ञान की तरह की पेशकश (स्ट्रिंग :: iterator बनाम चार के बारे में सोच *)।
- सामान्यीकृत अवधारणा कंटेनर के अंदर तत्वों पर पुनरावृत्ति से परे प्रयोग योग्य है।
- कुछ मामलों में कंटेनर सदस्य कार्यों से बेहतर प्रदर्शन।
मैं सहमत हूं, और विशेष रूप से मैं एक बहुत ही व्यावहारिक लाभ पर उच्चारण डाल दूंगा: इटरेटर का उपयोग कर वेक्टर के तत्वों में साइकिल चलाना एक-एक-एक परिस्थितियों के लिए त्रुटि सुरक्षित है। अधिक सरलता से, वेक्टरों के लिए इटरेटर का उपयोग किसी भी प्रकार का आकार-अज्ञेयवादी है। –
जब तक आपको अनुक्रमिक पहुंच की आवश्यकता हो, आप सही हैं। अन्य मामलों में, कोई समानता नहीं है। – xtofl
मॉड्यूलरिटी उत्तर है। मान लीजिए कि आप अपने तर्क को फ़ंक्शन कॉल (एक अच्छी प्रैक्टिस) में लपेटें। उस मामले में इसे इटेटरेटर प्राप्त करने से यह सामान्य हो जाएगा, ताकि यह एक सी स्टाइल सरणी (पॉइंटर), एक सी ++ एसएलएल वेक्टर या कुछ भी वास्तव में जो इटरेटर कंटेनर की तरह व्यवहार करता हो, जैसे उदाहरण के लिए एक लिंक्ड सूची पर काम कर सके।
इस प्रश्न को हाल ही में प्रदर्शन के संबंध में मुझसे पूछा गया था। हो सकता है कि आप मेरे द्वारा प्राप्त उत्तरों पर नज़र डालें।
चेक दिए गए लिंक: Iterators vs. indexes
चर्चा प्रदर्शन है, जो निकला मंच निर्भर होना, एक मंच में मामूली परिवर्तन के साथ के बारे में मुख्य रूप से किया गया था।
क्या आप कहेंगे तो इटेटरेटर्स के फायदे यह ऑपरेटर की तरह पॉइंटर है जो कुछ तरीकों से प्रदान किया जाता है? – Babiker
यह वह नहीं है जो मैं कह रहा हूं, मैंने केवल प्रदर्शन पहलू को संदर्भित किया है। –
+1 भले ही सवाल इटरेटर के साथ फायदे के बारे में था। लेकिन इटरेटर ओवरहेड का कारण बनते हैं। और यह बहुत ध्यान देने योग्य है। – ralphtheninja
मैं कंटेनरों में इसकी पोर्टेबिलिटी कहता हूं।
यदि आप वेक्टर का उपयोग करके कोड लिखते हैं और फिर से इंडेक्स का उपयोग करते हैं तो कोड को आसानी से बाद में अन्य कंटेनर में बदला नहीं जा सकता है।
typedef std::vector<int> myContainer; //only change here for std::list
for (myContainer::iterator iter = actualContainer.begin();
iter != actualContainer.end();
++iter)
{}
उपरोक्त कोड में यदि आप वेक्टर से सूची में बदलना चाहते हैं, तो यह बहुत आसानी से संभव है। यदि आपने इंडेक्स का उपयोग किया था तो यह संभव नहीं होगा।
अन्यथा वेक्टर यादृच्छिक अभिगम इटरेटर का उपयोग करता है, यह वही होना चाहिए।(इंडेक्स या इटरेटर कुछ भी ठीक है)
- 1. () बनाम [] बनाम {} के बीच क्या अंतर है?
- 2. क्या मैं एक एसटीएल :: वेक्टर :: इटरेटर
- 3. एसटीएल मानचित्र बनाम वेक्टर के लिए इटरेटर एक्सेस प्रदर्शन?
- 4. इटरेटर और लिस्टाइटरेटर के बीच अंतर?
- 5. वेक्टर इंडेक्स एक्सेस बनाम इटेटरेटर एक्सेस की क्षमता
- 6. इटरेटर और जेनरेटर के बीच क्या अंतर है?
- 7. वेक्टर और वर्टेक्स के बीच क्या अंतर है?
- 8. जेपीए @TableGenerator का उपयोग कर अनुक्रम आईडी के बीच क्या अंतर है, @GeneratedValue बनाम डेटाबेस Auto_Increment
- 9. इंडेक्स और विदेशी कुंजी के बीच क्या अंतर है?
- 10. यूनिक इंडेक्स और अद्वितीय कुंजी के बीच क्या अंतर है?
- 11. वेक्टर और स्टैक के बीच बड़ा अंतर क्या है?
- 12. बूस्ट सिंगल पास इटरेटर और फॉरवर्ड ट्रैवर्सल इटरेटर के बीच क्या अंतर है?
- 13. स्कैला में इटरेटर और स्ट्रीम के बीच अंतर?
- 14. एक इटरेटर का उपयोग कर एक सूची को पार करें?
- 15. वेक्टर इटरेटर: 'ऑपरेटर ='
- 16. एसटीएल कंटेनर - वेक्टर, सूची और डेक के बीच अंतर
- 17. इटरेटर बनाम संदर्भ बनाम सूचक
- 18. सोलर बनाम वेबोलर के बीच क्या अंतर है?
- 19. डब्ल्यूआईएफ का उपयोग, दर्शकों के बीच अंतर क्या है?
- 20. सूची तत्वों और इंडेक्स का एक साथ उपयोग
- 21. "गिट रीसेट" बनाम "गिट रीबेस" के बीच क्या अंतर है?
- 22. विभिन्न बूस्ट ublas स्पैस वेक्टर के बीच अंतर क्या हैं?
- 23. फ़ंक्शन पॉइंटर बनाम फ़ंक्शन कॉल के बीच क्या अंतर है?
- 24. एम और प्रतिशत का उपयोग कर सीएसएस फ़ॉन्ट आकार के बीच क्या अंतर है?
- 25. std :: इंडेक्स और डालने के बीच मानचित्र अंतर
- 26. सी ++ बनाम सी ++ के बीच मुख्य अंतर क्या है? नेट?
- 27. एक भविष्यवाणी और एक कार्यकर्ता के बीच क्या अंतर है?
- 28. db_owner बनाम db_datareader/db_datawriter होने के बीच क्या अंतर है?
- 29. lemmatization बनाम stemming के बीच सही अंतर क्या है?
- 30. लॉगकैट बनाम dmesg के बीच क्या अंतर है?
'क्रम में सभी तत्वों' (यानी पुनरावृत्त) तक पहुंचने और 'एक यादृच्छिक तत्व' (यानी एक्सेसिंग) तक पहुंचने के लिए betweeen को अलग करें। – xtofl