2016-05-12 7 views
-6

Welche Aussage schneller und für Schleifeniterationslatenzzeit in einem Behälter optimiert ist:Iterieren mit auto ref oder Iterator

for (const auto& Item : s_MyTable) 

oder

for (std::unordered_map<int,std::string>::const_iterator it = s_myTable.cbegin(); it != s_myTable.cend(); ++it) 
+13

Die Standard-Kommentar zu dieser Art von Frage: Haben Sie es gemessen? –

+0

Hängt davon ab, wie Sie 'it' in der Schleife verwenden. Wenn die Schleifen jedoch logisch äquivalent sind, wird der moderne Compiler wahrscheinlich die gleiche Ausgabe erzeugen. –

+0

Ich verwende Elemente, um sie in einem Vektor zu speichern. – Aminos

Antwort

1

Sprechen im Allgemeinen, noch ist "schneller". Sie machen das gleiche auf die gleiche Weise.

Sprechen noch allgemeiner, wenn Sie wirklich wissen möchten, messen Sie auf Ihrem System.

Sprechen Sie so allgemein wie möglich, versuchen Sie, sich nicht um solche Dinge zu kümmern.

Verwandte Themen