Trie d'une liste selon un critère
Bonjour à tous!!
Voilà tout est dans le titre, j'ai tenté de m'inspirer de la FAQ, mais ça j'ai du commettre une petite erreur quelque part.
J'ai une classe (abstraite):
Code:
1 2 3 4 5 6 7 8
| class CDrawableObject
{
public:
CDrawableObject();
virtual ~CDrawableObject();
( ... )
int m_Type;
}; |
une liste de pointeur sur cette classe:
Code:
std::list<CDrawableObject*> m_InterfaceObject;
une structure pour trier cette liste:
Code:
1 2 3 4 5 6 7 8
| //Structure pour trier les objets
struct SortByType
{
bool operator ()(const CDrawableObject* a1, const CDrawableObject* a2) const
{
return (a1->m_Type) < (a2->m_Type);
}
}; |
et enfin l'appelle à la fonction de trie
Code:
std::sort(m_InterfaceObject.begin(), m_InterfaceObject.end(), SortByType() );
J'obtiens les erreurs suivantes:
Code:
1 2 3 4 5 6 7
| C:\Program Files\Microsoft Visual Studio 8\VC\include\algorithm:2903: error C2784: 'reverse_iterator<_RanIt>::difference_type std::operator -(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)'ÿ: impossible de dduire l'argument modle pour 'const std::reverse_iterator<_RanIt> &'
partir de 'std::list<_Ty>::_Iterator<_Secure_validation>'
C:\Program Files\Microsoft Visual Studio 8\VC\include\algorithm:2903: error C2784: 'reverse_iterator<_RanIt>::difference_type std::operator -(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)'ÿ: impossible de dduire l'argument modle pour 'const std::reverse_iterator<_RanIt> &'
partir de 'std::list<_Ty>::_Iterator<_Secure_validation>'
C:\Program Files\Microsoft Visual Studio 8\VC\include\algorithm:2903: error C2784: 'reverse_iterator<_RanIt>::difference_type std::operator -(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)'ÿ: impossible de dduire l'argument modle pour 'const std::reverse_iterator<_RanIt> &'
partir de 'std::list<_Ty>::_Iterator<_Secure_validation>'
C:\Program Files\Microsoft Visual Studio 8\VC\include\algorithm:2903: error C2784: 'reverse_iterator<_RanIt>::difference_type std::operator -(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)'ÿ: impossible de dduire l'argument modle pour 'const std::reverse_iterator<_RanIt> &'
partir de 'std::list<_Ty>::_Iterator<_Secure_validation>'
C:\Program Files\Microsoft Visual Studio 8\VC\include\algorithm:2903: error C2676: '-'ÿbinaire : 'std::list<_Ty>::_Iterator<_Secure_validation>' ne dfinit pas cet oprateur ou une conversion vers un type acceptable pour l'oprateur prdfini
C:\Program Files\Microsoft Visual Studio 8\VC\include\algorithm:2903: error C2780: 'void std::_Sort(_RanIt,_RanIt,_Diff)'ÿ: 3 arguments attendus - 4 fournis
:: === Build finished: 6 errors, 0 warnings === |