Bonjour,
Je dispose de 2 vecteurs qui sont :
listeBiface : vecteur contenant des objets de types "bifaces" (je vous épargne la structure)
tabCompteur : vecteur d'entier avec un nombre d'occurence associé à chacune des précédentes bifaces, de telle sorte que tabCompteur[i] dénombre le nombre d'occurences de la biface située dans listeBiface[i].
Malheureusement on m'impose de conserver ces 2 structures distinctes même si elles sont fortement corrélées ! (j'aurais préféré ajouter un compteur dans la structure des bifaces).
Mon objectif est de récupérer l'objet biface qui est le plus fréquent.
Pour cela mon idée est de récupérer dans un premier temps la valeur de l'élément le plus fréquent (via tabCompteur), puis de stocker dans une variable "posMax" le premier indice dans ce vecteur ou je trouve cette valeur (il ne m'importe pas qu'il puisse y avoir un doublon ayant la même valeur).
Après quoi je retourne le "posMax" ième élément de ma liste de biface qui devrait logiquement être ma biface la plus fréquente.
Or cela ne marche pas (comme on pouvait s'y attendre ).
Voici ce que j'ai essayé :
J'obtiens l'erreur suivante :unsigned int valMax = max_element(tabCompteur.begin(), tabCompteur.end()); //récupère la valeur la plus grande
int posMax = find(tabCompteur.begin(), tabCompteur.end(), valMax); // récupère l'indice de la valeur la plus grande
return listeBifaces[posMax];
J'ai évidement essayé de remplacer le type de valMax par un "iterator" ou un pointeur sur cet itérateur, sans succès.erreur: cannot convert ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’ to ‘unsigned int’ in initialization
Je me dit que je dois être entrain de chercher à réinventer la roue, et qu'il doit bien exister une méthode moins prise de tête que ce que je tente actuellement...
Quelqu'un peut-il m'aider ?
Merci d'avance !
Partager