next up previous contents index
suivant: Recherche orientée monter: Inversion de table de précédent: Recherche de l'entrée dans   Table des matières   Index

L'itérateur

la méthode end :

Le test étant un test strict, il faut renvoyer des indices en dehors de la zone allouée. Ce qui nous donne :

colormap::iterator colormap::iterator::end()
{
  iterator ite(*this);
  if(mode==forward)
    ite.current=nb_color;
  else
    ite.current=-1;

  return ite;
}

Les opérateurs ++ et ++(int) :
L'unique petite originalité tient ici au fait que l'on incrémente ou décrémente l'indice en fonction du mode. Le reste est assez classique est s'écrit :
colormap::iterator colormap::iterator::operator++(int nothing)
{
  colormap::iterator tmp(*this);
  if(mode==forward)
    current++;
  else
    current--;
  return tmp;
}
et
colormap::iterator& colormap::iterator::operator++()
{
  if(mode==forward)
    current++;
  else
    current--;
  return *this;
}

L'opératueur $ <$ :
On obtient en prennant en compte le mode :
bool colormap::iterator::operator <(const colormap::iterator &ite)
{
  if(mode==forward)
    return current < ite.current;

  return current > ite.current;
}


Brun Luc 2004-03-25