Heim > Backend-Entwicklung > C++ > Hauptteil

Wie iteriere ich mit bereichsbasierten for-Schleifen in C 11 und höher durch eine std::map?

Barbara Streisand
Freigeben: 2024-10-27 17:34:31
Original
325 Leute haben es durchsucht

How do I iterate through a std::map using range-based for loops in C  11 and later?

Bereichsbasierte for()-Schleife mit std::map

In C 11 und späteren Versionen bereichsbasierte for()-Schleifen bieten eine bequeme Möglichkeit, Container zu durchlaufen. Bei der Iteration über einfache Container wie Vektoren ist jedes Element als Schleifenvariable leicht zugänglich. Bei komplexen Containern wie Karten ist es jedoch entscheidend, den Typ der Schleifenvariablen zu verstehen.

Bedenken Sie den folgenden Codeausschnitt:

<code class="cpp">std::map<foo, bar> testing = { /*...blah...*/ };
for (auto abc : testing)
{
    std::cout << abc << std::endl;
    std::cout << abc->first << std::endl;
}
Nach dem Login kopieren

In diesem Szenario ist jedes Element ein Standard: :map::value_type, was im Wesentlichen ein std::pair ist. Das bedeutet:

Für C 17 und höher:

<code class="cpp">for (auto& [key, value] : myMap) {
    std::cout << key << " has value " << value << std::endl;
}</code>
Nach dem Login kopieren

Für C 11 und C 14:

<code class="cpp">for (const auto& kv : myMap) {
    std::cout << kv.first << " has value " << kv.second << std::endl;
}</code>
Nach dem Login kopieren

Alternativ können Sie kv als const markieren, um eine schreibgeschützte Ansicht der Werte zu erhalten.

Das obige ist der detaillierte Inhalt vonWie iteriere ich mit bereichsbasierten for-Schleifen in C 11 und höher durch eine std::map?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!