Heim >Backend-Entwicklung >C++ >Wie sollte ich die bereichsbasierte For-Schleife von C 11 zum Beobachten und Ändern von Containerelementen verwenden?

Wie sollte ich die bereichsbasierte For-Schleife von C 11 zum Beobachten und Ändern von Containerelementen verwenden?

Linda Hamilton
Linda HamiltonOriginal
2024-12-20 03:55:12271Durchsuche

How Should I Use C  11's Range-Based For Loop for Observing and Modifying Container Elements?

Wie sollte die bereichsbasierte Formel von C 11 verwendet werden?

Syntax:

Die Syntax für die bereichsbasierte Formel von C 11- Die auf der for-Schleife basierende Schleife hängt von der gewünschten Operation am Container ab Elemente:

Beobachten von Elementen:

  • Um die Elemente nur zu beobachten, erfassen Sie sie per Konstantenreferenz: for (const auto& elem : Container)

    • Für billig zu kopierende Typen vereinfachen Sie zu: for (auto elem : container) if erwünscht.

Ändernde Elemente:

  • Erfassung durch (nicht konstante) Referenz: für (auto& elem: Container)

    • Für Container mit Proxy-Iteratoren (wie std::vector), verwenden: für (auto&& elem : Container)

Richtlinien:

Beobachten vs. Ändern

Beobachten:

  • Das Ziel besteht darin, auf Elemente zuzugreifen, ohne sie zu ändern.
  • Verwenden Sie für (const auto& elem : Container) oder für (auto elem : Container), wenn Elemente günstig sind kopieren.

Ändern:

  • Das Ziel besteht darin, Elemente an Ort und Stelle zu ändern.
  • Verwenden für (auto& elem : Container ).
  • Für Proxy-Iteratoren verwenden Sie: for (auto&& elem : Container).

Generischer Code:

Im generischen Code, um die Kompatibilität mit verschiedenen Typen und Containern sicherzustellen:

Beobachten :

  • Immer verwenden für (const auto& elem : Container).

Ändern:

  • Verwenden für (auto&& elem : Container).

Das obige ist der detaillierte Inhalt vonWie sollte ich die bereichsbasierte For-Schleife von C 11 zum Beobachten und Ändern von Containerelementen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn