Es scheint, dass die "für jeden" Stil der Syntax in C++ 11 Array-Iteration ohne Kenntnis der tatsächlichen Größe des Arrays (Anzahl der Elemente) ermöglicht. Ich nehme an, da dies Teil des neuen Standards ist, ist dies absolut sicher, sogar für C-Arrays. Typischerweise müssen Sie separat auch die Größe eines C-Array kennen, bevor es zu manipulieren, aber ich will Überprüfung von jemand mit dieser neuen C++ Technik erfahren, dass es genau funktioniert, wie man es erwarten würde:bereichsbasierte for-Schleifen in C++
extern float bunch[100];
for (float &f : bunch) {
f += someNumber;
}
Gibt es etwas, ich sollte über nicht offensichtliche Nebenwirkungen oder Nachteile dieser Technik wissen? Es zeigt nicht viel in Code, den ich sehe, wahrscheinlich weil der meiste Code geschrieben wurde, bevor dies im Standard war. Möchten Sie sicherstellen, dass seine seltene Verwendung nicht aus einem anderen Grund nicht bekannt ist.
Sie können immer die Größe eines Arrays wissen (https://gist.github.com/3959946#file-arrays-h-L33). Wenn Sie das in Zeiger konvertieren, hören Sie auf, die Größe zu kennen. –
@ R.MartinhoFernandes: Nice gist! –
Im Allgemeinen werden Sie ein viel glücklicheres C++ Leben durch den Verzicht auf einfache Arrays und das Bewegen zu Standard-Bibliotheken-Containern führen. –