एक सदिश को देखते हुए, vc,
एक के लिए एक सीमा के साथ वेक्टर के माध्यम से पुनरावृति कर सकते हैंक्या वेक्टर पर इटरेटर के बजाए लूप के लिए एक रेंज का उपयोग किया जाना चाहिए?</p> <pre><code>for (auto c : vc) std::cout << c; </code></pre> <p>या पुनरावर्तक के साथ:
for (auto it = vc.cbegin(); it != vc.cend(); ++it)
std::cout << *it;
वहाँ एक दूसरे के ऊपर विधि का उपयोग करने के लिए एक कार्यात्मक कारण है, या यह केवल शैली का मामला है?
ध्यान दें कि श्रेणी-आधारित-लूप में 'ऑटो' के उपयोग के साथ आपको अपने वेक्टर तत्वों की * प्रतिलिपि * मिल रही है, यदि आपकी ऑब्जेक्ट कॉपी करने के लिए महंगी है, तो अवांछित प्रदर्शन समस्याएं उत्पन्न हो सकती हैं। इटरेटर्स के उपयोग के साथ आप एक कॉन्स संदर्भ वापस लेते हैं, इसलिए प्रतियां यहां नहीं होती हैं। रेंज-आधारित में एक कॉन्स संदर्भ वापस पाने का एक तरीका है '(कॉन्स ऑटो और सी: वीसी) ... ' –