Maison > développement back-end > C++ > Comment dois-je utiliser la boucle For basée sur une plage de C 11 pour observer et modifier les éléments du conteneur ?

Comment dois-je utiliser la boucle For basée sur une plage de C 11 pour observer et modifier les éléments du conteneur ?

Linda Hamilton
Libérer: 2024-12-20 03:55:12
original
353 Les gens l'ont consulté

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

Comment utiliser la plage basée sur la plage de C 11 ?

Syntaxe :

La syntaxe de la plage de C 11- basé sur la boucle for varie en fonction de l'opération souhaitée sur les éléments du conteneur :

Observation éléments :

  • Pour simplement observer les éléments, capturez par référence const : for (const auto& elem : conteneur)

    • Pour un prix bon marché copier les types, simplifier en : for (auto elem : conteneur) si souhaité.

Modification des éléments :

  • Capture par référence (non const) : pour (auto& elem : conteneur)

    • Pour les conteneurs avec des itérateurs proxy (comme std::vector), utiliser : pour (auto&& elem : conteneur)

Directives :

Observer vs. Modifier

Observer :

  • Le but est d'accéder aux éléments sans les modifier.
  • Utiliser pour (const auto& elem : conteneur) ou pour (auto elem : conteneur) lorsque les éléments sont bon marché à copier.

Modification :

  • Le but est de modifier des éléments en place.
  • Utiliser pour (auto& elem : conteneur ).
  • Pour les itérateurs proxy, utilisez : for (auto&& elem : conteneur).

Code générique :

En code générique, pour assurer la compatibilité avec divers types et conteneurs :

Observer :

  • Toujours utiliser pour (const auto& elem : conteneur).

Modification :

  • Utiliser pour (auto&& elem : conteneur).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal