IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comparaison de structures avec tableau ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Par défaut Comparaison de structures avec tableau ?
    Existerait-il un moyen d'avoir un tableau d'une structure ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct Tableau
    {
           long a, b;
    };
     
    struct Tableau tableau[10];
    Cet exemple ne suffit pas, ça compile mais l'application plante.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Déjà, en C++, le deuxième struct n'est pas utile. Ensuite, ton exemple devrait marcher. Du moins tel quel, ça marche.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Par défaut
    C'est vrai, je l'avais déclaré en locale, voilà pourquoi ça plantait, merci.


    Mais maintenant j'ai un autre problème, la comparaison entre deux structures avec la position du tableau ne veut pas compiler :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    struct Tableau
    {
           long a, b;
    };
     
    Tableau tableau[10];
     
     
    int main()
    {
        if (tableau[0] == tableau[1])
        {
        }
    }
    J'utilise Dev-c++.

    Il existe un moyen de contourner ce problème ?


    EDIT : Le message du compilateur : no match for 'operator==' in 'tableau[0] == tableau[1]'

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Normal, il n'y a pas d'opérateur == défini par défaut pour les structures en c++. Il faut en définir un à la main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool operator==(Tableau const& t1, Tableau const& t2)
    {
    ...
    }

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ben oui, c'est simple, il faut définir un opérateur de comparaison, il ne peut pas savoir comment le faire tout seul !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Par défaut
    Oulà, c'est drôlement compliqué tout ça.

    Je croyais qu'une structure marchait comme une variable.


    J'ai jamais vu de "operator" dans un code encore, donc je comprends pas comment marche la fonction.


    Sylvain Togni, sur cette fonction, const &t1 et const &t2 sont deux références comparées si je comprends bien, mais ça ne fausse pas les autres utilisations classiques de l'opérateur "==" dans le code ?



    EDIT : J'ai essayé le code, il compile mais le test échoue toujours que les deux valeurs soient identiques ou non...

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <cstdlib>
    #include <iostream>
     
    using namespace std;
     
     
    struct Tableau
    {
           long a, b;
    };
     
    Tableau tableau[10];
     
     
    bool operator==(Tableau const& t1, Tableau const& t2)
    {
    }
     
     
    int main()
    {
        tableau[0].a = 2;
        tableau[0].b = 7;
     
        tableau[1].a = 2;
        tableau[1].b = 7;
     
     
        if (tableau[0] == tableau[1])
        {
            cout << "Test positif" << endl;
            system("pause");
        }
     
        else
        {
            cout << "Test negatif" << endl;
            system("pause");
        }
    }

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ben, faut tout de même mettre le code de la comparaison si tu veux qu'il se passe quelque chose ! D'ailleurs, tu as un beau warning, là.

Discussions similaires

  1. StructLayout : structure avec tableau
    Par tyarcaouen dans le forum C#
    Réponses: 3
    Dernier message: 29/09/2008, 00h01
  2. petite base de donnée avec structure ou tableau?
    Par progbase dans le forum Débuter
    Réponses: 5
    Dernier message: 07/04/2008, 15h03
  3. structure avec tableau multidimentionnel
    Par Alternative451 dans le forum Débuter
    Réponses: 2
    Dernier message: 29/03/2008, 22h41
  4. Allocation d'une structure avec tableau
    Par line86 dans le forum C
    Réponses: 5
    Dernier message: 02/10/2007, 11h38
  5. Réponses: 2
    Dernier message: 12/05/2007, 01h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo