erreur avec mon const_reverse_iterator
Bonjour, j'ai un code qui ne compile pas avec g++ mais qui compile et s'exécute parfaitement bien avec Visual 2005. Voici ma fonction
Code:
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
|
void Cah::typologie(set<int> & s, double diff)
{
double ind;
int num;
vpClasse::const_reverse_iterator it = _desc.rbegin();
s.insert((*it)->getAine());
s.insert((*it)->getBenj());
set<int>::iterator sit;
it++;
for( ; it != _desc.rend() ; it++)
{
ind = (*it)->getIndice();
num = (*it)->getNum();
if(ind > diff)
{
/* si num est un element de s on le supprime */
sit = s.find(num);
if(sit != s.end()) s.erase(sit); /* sit == s.end() : l'element n'a pas ete trouve */
s.insert((*it)->getAine());
s.insert((*it)->getBenj());
}
else
break;
} /* for( ; it != _desc.end() ; it++) */
} |
L'erreur a lieu à la ligne suivante :
Code:
1 2
|
for( ; it != _desc.rend() ; it++) |
et g++ dit :
Citation:
Sources/cah.cpp: In member function `void Cah::typologie(std::set<int,
std::less<int>, std::allocator<int> >&, double)':
Sources/cah.cpp:438: error: no match for `
std::reverse_iterator<__gnu_cxx::__normal_iterator<Classe* const*,
std::vector<Classe*, std::allocator<Classe*> > > >& !=
std::reverse_iterator<__gnu_cxx::__normal_iterator<Classe**,
std::vector<Classe*, std::allocator<Classe*> > > >' operator
Savez-vous comment résoudre ce problème ?
Merci d'avance