in C++ 11 wir jetzt tun können:Ermöglicht C++ 11 for loop neue oder bessere Optimierungen?
void dosomething(std::vector<Thing>& things)
{
for(Thing& thing : things)
{
dofoo(thing);
wiizzz(thing);
tadaa(thing);
}
}
Ich weiß, dass die Zugabe und die Verwendung von Lambda-syntaktischer Zucker, aber es interessante Optimierungsmöglichkeiten bieten.
Was ist mit der for-Schleife? Ist es nur syntaktischer Zucker oder kann der Compiler einige Fälle optimieren, die mit der handgeschriebenen Schleife nicht oder nur schwer zu tun sind?
Ist 'for (Ding & Ding: Dinge)' in C++ 0x eine Bestellung angeben? Oder könnte "Ding" in irgendeiner Reihenfolge erscheinen? – Inverse
Es braucht nur den Iterator aus dem Begin() -Member des gegebenen Containers (wenn es eine Klasse ist) und iterieren, bis es den Ende() Iterator erreicht. Es ist also Iterator-abhängig oder containerabhängig, wenn Sie möchten. Im Falle eines rohen Arrays (oder Array semantische Klasse auch?) Es wird nur von einem [0] gehen und endet, wenn es zu einem [Größe]. – Klaim