Je souhaite itérer d'une manière un peu spécial sur un set. Pour des raisons que je ne n'expliquerai pas je dois absolument parcourir deux fois ma boucle si le set ne possède qu'un élément et tout le set sinon.
J'ai codé ceci qui marche :
Mais je me demandais s'il existait une technique disons plus propre (je n'aime pas trop le if dans la boucle) de procéder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 set<int> container; /*...*/ set<int>::const_iterator it; int container_sz=container.size(); const int nb_tours=container_sz==1 ? 2 :container_sz; int i; for(it=container.begin(),i=0;it!=container.end() || i<nb_tours;++it,++i) { if(container_sz<=1) it=container.begin(); /*..*/ }
Toute idée est la bienvenue!
Merci
Partager