Je ne pense pas que cela fonctionnera comme ça sorti de la boîte car equal_range
renvoie une paire d'itérateurs alors que la boucle for sur la plage selon la documentation est :
Les expressions begin_expr et end_expr sont définies comme suit :
Si (__range) est un tableau, alors (__range) et (__range + __bound), où __bound est la limite du tableau
Si (__range) est une classe et possède soit un membre begin, soit un membre end (ou les deux), alors begin_expr est __range.begin() et end_expr est __range.end();
Sinon, begin(__range) et end(__range), qui sont trouvés en fonction des règles de recherche dépendantes des arguments avec std en tant que namespace associé.
Je dirais que vous pourriez définir des fonctions begin
et end
qui prennent la paire d'itérateurs et renvoient respectivement le premier et le deuxième.