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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    quelle est l'erreur ?
    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
  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
    1. Contributeur
      Je te conseillerai de définir ta struture element en dehors de la matrice. Ou alors de mettre un typedef.
      1. ce n'est pas "element.indice" qu'il faut indiquer, mais "this->indice", non ?
        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);
          } 
          1. ah ouais ! Heureux de t'avoir aidé à trouvé l'erreur en lisant trop vite son post ^^