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
L'erreur a lieu à la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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++) */ }
et g++ dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for( ; it != _desc.rend() ; it++)
Savez-vous comment résoudre ce problème ?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
Merci d'avance
Partager