parcours particulier d'un set
:salut:
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 :
Code:
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();
/*..*/
} |
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.
Toute idée est la bienvenue!
Merci