1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| /* fonction calculant la position d'une chaine donnée dans une liste
* @ return : un entier représentant la position si la chaine est trouvée
-1 si la valeur n'a pas été trouvée
*/
int occurence(std::list<std::string const & liste, std::string const & str)
{
int cpt=0;
std::list<std::string>::const_iterator it=liste.begin();
/* nous parcourons toute la liste */
while(it!=liste.end())
{
/*si la chaine représentée par l'itérateur est la chaine recherchée
*/
if( (*it)==str)
{
/* il n'y a pas besoin d'aller plus loin.
* on renvoie la valeur du compteur
*/
return ret;
}
/* si on arrive ici, ce n'est pas le cas...
* on passe à l'itérateur suivant et on incrémente le compteur
*/
++it;
++cpt
}
/* si on arrive ici, c'est que la fin de la liste a été atteinte sans trouver
* la chaine recherchée...
* nous renvoyons donc " -1 " pour l'indiquer explicitement
*/
return -1;
} |