में लूप के लिए रेंज-आधारित यह ऐसा प्रतीत होता है कि सी ++ 11 में उपलब्ध वाक्यविन्यास के प्रत्येक "शैली के लिए" सरणी के वास्तविक आकार (तत्वों की संख्या) के ज्ञान के बिना सरणी पुनरावृत्ति को अनुमति देता है। मुझे लगता है, क्योंकि यह नए मानक का हिस्सा है, यह सी सरणी के लिए भी पूरी तरह से सुरक्षित है। आमतौर पर, आप भी अलग से यह जोड़ तोड़ से पहले एक सी सरणी के आकार को पता होना चाहिए, लेकिन मैं सत्यापन चाहते किसी को भी इस नई सी ++ तकनीक है कि यह वास्तव में काम करता है के रूप में आप उम्मीद थी के साथ अनुभव से:सी ++
extern float bunch[100];
for (float &f : bunch) {
f += someNumber;
}
क्या मैं है इस तकनीक के लिए स्पष्ट स्पष्ट प्रभाव या नुकसान के बारे में पता होना चाहिए? यह मुझे दिखाई देने वाले कोड में बहुत कुछ नहीं दिखाता है, संभवतः क्योंकि अधिकांश कोड मानक में होने से पहले लिखा गया था। यह सुनिश्चित करना चाहते हैं कि इसका दुर्लभ उपयोग किसी अन्य कारण से नहीं है, जिसे जाना जाता है।
आप हमेशा एक सरणी के आकार (https://gist.github.com/3959946#file-arrays-h-L33) को जान सकते हैं। यदि आप इसे सूचक में परिवर्तित करते हैं, तो आप आकार को जानना बंद कर देते हैं। –
@ आर। मार्टिन्होफर्नैंड्स: अच्छा गिस्ट! –
सामान्य रूप से आप पूर्वगामी सादे सरणी द्वारा पूर्व में सी ++ जीवन जीते हैं और मानक पुस्तकालय कंटेनर –