Itération inversée basée sur la plage avec C 11
Question :
Y a-t-il un moyen inverser la direction des itérateurs pour une boucle for basée sur la plage ? Actuellement, transformer une boucle for standard avec des itérateurs explicites à l'aide de rbegin() et rend() est possible, mais il serait avantageux d'avoir une syntaxe analogue pour la version basée sur la plage.
Réponse :
Plutôt que de créer un adaptateur personnalisé, Boost propose une solution pratique avec boost::adaptors::reverse. Cet adaptateur inverse l'ordre des éléments lors de l'itération.
Exemple d'utilisation :
#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 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!