Surcharge pour sort() C++

Bonjour,
class matrice{
private:
struct element{
int indice;
int nombre ;
};
list<element> litEtl;
public:
matrice();
bool operator<(const element&);
trier();
};

bool matrice::operator <(const matrice::element & e1){
return (e1.indice <= element.indice);
}

je voudrai juste surchargre mon operator< mais peine perdu
Quel u un peu m aider
Ou est l'erreur
J'aimerai le trier selon l'indice
Configuration: Windows XP / Firefox 3.5.7

5 réponses

  1. Contributeur
    pacorabanix a tout faux, mais il vient de m'aider à comprendre l'erreur.
    En fait tu défini une structure "element" dans ta classe "matrice", mais pas de variable.
    ceci devrai mieu fonctionné :
    class matrice{
    private:
    struct element{
    int indice;
    int nombre ;
    };
    element Element;
    list<element> litEtl;
    public:
    matrice();
    bool operator<(const element&);
    trier();
    };
    
    bool matrice::operator <(const matrice::element & e1){
    return (e1.indice <= Element.indice);
    } 

    ou
    class matrice{
    private:
    typedef struct {
    int indice;
    int nombre ;
    }element;
    element Element;
    list<element> litEtl;
    public:
    matrice();
    bool operator<(const element&);
    trier();
    };
    
    bool matrice::operator <(const matrice::element & e1){
    return (e1.indice <= Element.indice);
    } 
    0
    1. ah ouais ! Heureux de t'avoir aidé à trouvé l'erreur en lisant trop vite son post ^^
      0
  2. ce n'est pas "element.indice" qu'il faut indiquer, mais "this->indice", non ?
    0
    1. Contributeur
      Je te conseillerai de définir ta struture element en dehors de la matrice. Ou alors de mettre un typedef.
      0
      1. Merci
        Je ne sais avec quel element comparer l'element e1 de operator<

        matrice.cpp

        bool matrice::operator <(const matrice::element & e1){
        return (e1.indice <= element.indice);
        }

        'matrice::element' : utilisation non conforme de ce type comme expression

        aide moi je dois avancer
        0
        1. Contributeur
          quelle est l'erreur ?
          0
          1. Merci
            Je ne sais avec quel element comparer l'element e1 de operator<

            matrice.cpp

            bool matrice::operator <(const matrice::element & e1){
            return (e1.indice <= element.indice);
            }

            'matrice::element' : utilisation non conforme de ce type comme expression

            aide moi je dois avancer
            0