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
    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
  2. 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
      Je te conseillerai de définir ta struture element en dehors de la matrice. Ou alors de mettre un typedef.
      0
      1. ce n'est pas "element.indice" qu'il faut indiquer, mais "this->indice", non ?
        0
        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