Heim > Backend-Entwicklung > C++ > Wie kann ich bereichsbasierte For-Schleifen in C 11 korrekt verwenden?

Wie kann ich bereichsbasierte For-Schleifen in C 11 korrekt verwenden?

Patricia Arquette
Freigeben: 2024-12-29 20:19:12
Original
310 Leute haben es durchsucht

How Can I Correctly Use Range-Based For Loops in C  11?

So verwenden Sie die bereichsbasierte for-Schleife in C 11 richtig

Die bereichsbasierte for-Schleife ist ein prägnanter und leistungsstarker Iterator-Traversalmechanismus, der in eingeführt wurde C 11 eingeführt in. Es wird verwendet, um einen Container oder eine andere iterierbare Sequenz zu durchlaufen und Elemente in der Sequenz über eine oder mehrere Variablen zu referenzieren. So verwenden Sie eine bereichsbasierte for-Schleife korrekt:

Syntax

for (auto elem : container) {
  // 代码体
}
Nach dem Login kopieren

Wobei:

  • Das Schlüsselwort auto bedeutet, dass der Compiler automatisch auf Folgendes schließt Elementtyp.
  • elem ist die Iteratorvariable für die Elemente in der Schleife.
  • Container ist der Container oder die iterierbare Sequenz, über die iteriert werden soll.

Elementerfassungsmodus

Bei Verwendung einer bereichsbasierten for-Schleife können Sie einen der folgenden drei Elementerfassungsmodi auswählen:

  1. Drücken Sie Werterfassung (Auto-Elem): Erstellt eine lokale Kopie eines Elements. Dies funktioniert für Typen, deren Elemente kostengünstig zu kopieren sind (z. B. int, double usw.).
  2. Erfassung durch Referenz (auto&elem): Direkte Referenzierung des Elements im Container. Dies wird zum Ändern von Elementen oder Typen verwendet, bei denen ein Kopieren vermieden werden muss.
  3. Proxy per Referenz erfassen (auto&&elem): Zum Durchlaufen eines Containers mit einem „Proxy-Iterator“ (z. B. std::vector).

Beobachten oder ändern

Bereichsbasierte for-Schleifen können für zwei Hauptzwecke verwendet werden:

  1. BeobachtenElemente: Verwendung const auto&elem erfasst Elemente, um sicherzustellen, dass das ursprüngliche Element nicht geändert wird.
  2. Element ändern: Verwenden Sie auto&elem, um das Element zu erfassen und das ursprüngliche Element direkt zu ändern.

Richtlinien

Um bereichsbasiert für richtig zu verwenden Beachten Sie für Schleifen die folgenden Richtlinien:

  • Für beobachtete Elemente verwenden Sie:
for (const auto& elem : container) // 按引用捕获常量
Nach dem Login kopieren
  • Für geänderte Elemente verwenden Sie:
for (auto& elem : container) // 按引用捕获
Nach dem Login kopieren
  • Wenn der Container „proxy Iterator“, Verwendung:
for (auto&& elem : container) // 按引用捕获 proxy
Nach dem Login kopieren

Hinweise im generischen Code

Im generischen Code wird empfohlen, const auto&elem zu verwenden, um Elemente zur Beobachtung zu erfassen, und auto&& ;elem erfasst Elemente zur Änderung, da diese Methoden mit verschiedenen Arten von Containern und Elementen funktionieren.

Das obige ist der detaillierte Inhalt vonWie kann ich bereichsbasierte For-Schleifen in C 11 korrekt verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage