suivant: Inversion de la table
monter: Inversion de table de
précédent: L'itérateur
  Table des matières
  Index
Le code de la méthode est le suivant :
void colormap::oriented_search(iterator & ite,
unsigned char * input,
int& min_dist,
int & index)
{
int current_dist;
for(;ite<ite.end();ite++)
{
current_dist=(input[0]-ite[0])*(input[0]-ite[0]);
if(current_dist > min_dist)
break;
for(int i=1;i<3;i++)
current_dist+=(input[i]-ite[i])*(input[i]-ite[i]);
if(current_dist<min_dist)
{
index=ite.index();
min_dist=current_dist;
}
}
}
Notez le test sur la première composante pour sortir de la boucle
dès que la distance sur la première composante est supérieure
à min_dist. Pour le reste on fait avancer l'itérateur jusqu'à la fin
en mettant à jour à chaque étape la distance minimale et l'indice
correspondant.
Brun Luc
2004-03-25