एक पुनरावर्तक का उपयोग कर वेक्टर के माध्यम से पुनरावृत्ति कर रहा है और प्रतिलिपि बनाने की सबसे इष्टतम विधि सूची में कॉपी कर रहा है। कोई सिफारिशें?एसटीएल में एक सूची में वेक्टर की प्रतिलिपि बनाने का सबसे अच्छा तरीका?
उत्तर
आप मानक प्रतिलिपि एल्गोरिदम का पुन: उपयोग क्यों नहीं करेंगे?
std::copy(vector.begin(), vector.end(), std::back_inserter(list));
आप <algorithm>
हैडर से जटिल चीजों का उपयोग करने के उदाहरण for_each
या copy
के लिए कोशिश कर सकते हैं ... लेकिन वे मेरी राय में, एक ही बात माना जायेगा।
for_each की राशि समान होगी। प्रदान किए गए इटरेटर्स के आधार पर अधिक कुशल प्रति यांत्रिकी प्रदान करने के लिए प्रतिलिपि को अधिभारित किया जा सकता है, और आम तौर पर पसंदीदा तंत्र है। – workmad3
आप एक नई सूची बना रहे हैं, तो आप एक निर्माता है कि शुरू और समाप्त iterators लेता है का लाभ ले सकते:
std::list<SomeType> myList(v.begin(), v.end());
Kasprzol के जवाब एकदम सही है अगर आप किसी मौजूदा सूची आप को संलग्न करना चाहते हैं।
मुझे एक नई सूची बनाने के लिए यह सुझाव पसंद है।
std::list<SomeType> myList(v.begin(), v.end());
लेकिन मौजूदा सूची में शामिल होने पर, निम्नलिखित छोटे डेटा सेट के लिए इष्टतम हो सकता है। "इष्टतम" से, मेरा मतलब है कि यह याद रखना सबसे आसान है कि कैसे करना है और समझने में आसान तरीका है। वैक्टर पर iterators का उपयोग करते हुए कई मामलों में बहुत ज्यादा पंडिताऊ हो सकता है (ये व्यक्तिपरक बयान कर रहे हैं, मुझे यकीन है कि यह कैसे अपने दिमाग वायर्ड है पर निर्भर करता है हूँ।)
for (unsigned i=0; i<v.size(); i++) myList.push_back(v[i]);
। सरल अनुक्रमण आमतौर पर ठीक काम करता है।
एक और धागा इटरेटर बनाम इंडेक्स को संबोधित करता है (here)। उस धागे में, उठाए गए उत्तर मूल रूप से इटरेटर पसंद करते थे क्योंकि वे अधिक सामान्य होते हैं। लेकिन यदि वेक्टर सबसे अधिक इस्तेमाल किए जाने वाले कंटेनर प्रकार हैं, तो मुझे लगता है कि इस तरह के सरल एल्गोरिदम का विशेषज्ञ होना उचित है।
list.assign(vector.begin(), vector.end());
यह सहायक है, लेकिन संभावित वीएलक्यू ध्वज से बचने के लिए आपको शायद इस उत्तर में कुछ गैर-कोड जोड़ना चाहिए। –
- 1. वेक्टर में सूची पिघलने का सबसे अच्छा तरीका क्या है?
- 2. जावा में फ़ाइलों की प्रतिलिपि बनाने का सबसे तेज़ तरीका
- 3. पर्ल में हैश के हैश की गहरी प्रतिलिपि बनाने का सबसे अच्छा तरीका क्या है?
- 4. पर्ल में डेटा संरचना की गहरी प्रतिलिपि बनाने का सबसे अच्छा तरीका क्या है?
- 5. पंक्तियों की प्रतिलिपि बनाने का तरीका आर
- 6. एसटीएल एक वेक्टर क्लोनिंग
- 7. पॉइंटर्स की एक एसटीएल सूची/वेक्टर की सफाई
- 8. एक पुनरावृत्त वस्तु की प्रतिलिपि बनाने का पाइथोनिक तरीका
- 9. कोडइग्निटर में व्यवस्थापक पेज बनाने का सबसे अच्छा तरीका?
- 10. डीटीओ पैटर्न: दो ऑब्जेक्ट्स के बीच गुणों की प्रतिलिपि बनाने का सबसे अच्छा तरीका
- 11. किसी फ़ाइल से एसटीएल-वेक्टर में एक निश्चित संख्या में वर्णों की प्रतिलिपि कैसे कॉपी करें?
- 12. एप्लिकेशन आइकन बनाने का सबसे अच्छा तरीका
- 13. एसटीएल वेक्टर के एक अच्छा सी समकक्ष?
- 14. टी-एसक्यूएल: पदानुक्रम डेटा की प्रतिलिपि बनाने का सबसे अच्छा तरीका?
- 15. ओरेकल में हिस्टोग्राम/आवृत्ति वितरण बनाने का सबसे अच्छा तरीका?
- 16. जावास्क्रिप्ट में क्लास गेटर/सेटर्स बनाने का सबसे अच्छा तरीका?
- 17. रेल में एकाधिक फ़िल्टर बनाने का सबसे अच्छा तरीका
- 18. एक वेक्टर की सामग्री को एक सरणी में कॉपी करने का सबसे तेज़ तरीका?
- 19. तारों की एक सरणी को वेक्टर में परिवर्तित करने का सबसे अच्छा तरीका है?
- 20. इंकस्केप में तीर बनाने का सबसे अच्छा तरीका क्या है?
- 21. पर्ल में अभी तक बनने वाली निर्देशिका पेड़ में फ़ाइलों की प्रतिलिपि बनाने का सबसे अच्छा तरीका क्या है?
- 22. एक्सेल में स्वरूपण की प्रतिलिपि बनाने के लिए तेज़ तरीका
- 23. एक जटिल NSCompoundPredicate बनाने का सबसे अच्छा तरीका क्या है?
- 24. स्कैला में सूची प्रकार बदलने का सबसे अच्छा तरीका
- 25. जावा: रक्षात्मक रूप से एक int [] की प्रतिलिपि बनाने का सबसे प्रभावी तरीका?
- 26. सरणीसूची का हैशैप बनाने का सबसे अच्छा तरीका
- 27. एक वेक्टर को दो छोटे सरणी में विभाजित करने का सबसे अच्छा तरीका?
- 28. सी # में डेटाटेव को डेटाटाइव की प्रतिलिपि बनाने का सबसे आसान तरीका?
- 29. डेटाबेस की प्रतिलिपि बनाने का सर्वोत्तम तरीका (SQL सर्वर 2008)
- 30. एक एसटीएल वेक्टर
stl :: प्रतिलिपि के बजाय std :: प्रति होना चाहिए, लेकिन अन्यथा यह प्रतिलिपि बनाने के लिए इटरेटर का उपयोग करते समय यह पसंदीदा तरीका है। – workmad3