kennen:beispiel:range_based_for
no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | kennen:beispiel:range_based_for [2020-07-27 10:34] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== range-based for ====== | ||
+ | > // Write clearly -- don't sacrifice clarity for " | ||
+ | >> | ||
+ | |||
+ | |||
+ | Die in [[..: | ||
+ | <code cpp> | ||
+ | std:: | ||
+ | |||
+ | for (auto e : v) std::cout << e << ' '; | ||
+ | |||
+ | </ | ||
+ | und bewirkt dasselbe wie | ||
+ | <code cpp> | ||
+ | for (std:: | ||
+ | { | ||
+ | int e = *iter; | ||
+ | std::cout << e << ' '; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Die "range for" | ||
+ | <code cpp> | ||
+ | double arr[] = { 1.2, 2.3, 3.4 }; | ||
+ | | ||
+ | for (double& | ||
+ | for (double | ||
+ | </ | ||
+ | Den Typ der Containerelemente kann der Compiler auch automatisch erkennen. Durch Referenzen ist der Inhalt von nichtkonstanten Containern änderbar: | ||
+ | <code cpp> | ||
+ | for (auto element : container) | ||
+ | for (auto& element : container) | ||
+ | for (auto const& element : container) // schreibgeschützt ... | ||
+ | </ | ||
+ | In generischen Funktionen empfiehlt sich | ||
+ | <code cpp> | ||
+ | for (auto&& | ||
+ | </ | ||
+ | Dies funktioniert für konstante und nicht konstante Elemente sowie Proxy-Objekte. | ||
kennen/beispiel/range_based_for.txt · Zuletzt geändert: 2020-07-27 10:34 von 127.0.0.1