Maison >développement back-end >C++ >Comment Boost::adaptors::reverse peut-il activer les boucles For basées sur la plage inversée dans C 11 ?
C 11 Boucle For basée sur une plage inversée utilisant Boost
L'itération dans les conteneurs dans l'ordre inverse peut être réalisée à l'aide d'un adaptateur de conteneur dédié qui inverse la direction des itérateurs. Cela nous permet d'implémenter l'itération inverse avec la commodité des boucles for basées sur la plage.
Heureusement, Boost fournit un tel adaptateur : boost::adaptors::reverse. Cet adaptateur prend un conteneur en entrée et renvoie un nouvel adaptateur de conteneur avec des itérateurs inversés.
Pour démontrer son utilisation, considérons l'exemple suivant :
#include <list> #include <iostream> #include <boost/range/adaptor/reversed.hpp> int main() { std::list<int> x = {2, 3, 5, 7, 11, 13, 17, 19}; for (auto i : boost::adaptors::reverse(x)) std::cout << i << '\n'; for (auto i : x) std::cout << i << '\n'; }
Ce code crée d'abord une liste x de entiers. Ensuite, il parcourt la liste dans l'ordre inverse à l'aide de l'adaptateur boost::adaptors::reverse(x). Il imprime les éléments dans l'ordre inverse, suivi de l'ordre d'origine pour comparaison.
Le résultat du programme est :
19 17 13 11 7 5 3 2 2 3 5 7 11 13 17 19
Cela démontre la capacité des adaptateurs Boost boost :: : :adaptateur inverse pour inverser la direction des itérateurs et permettre une itération inverse pratique avec des boucles for basées sur la plage en C .
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!