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 :

Lier 2 Structures par un champ identique


Sujet :

C++

  1. #1
    Invité
    Invité(e)
    Par défaut Lier 2 Structures par un champ identique
    Bonjour,

    Je souhaiterais savoir comment lier 2 Structures avec 1 champ identique.
    Le but serait de faire une recherche sur un champ qui afficherait tous les champs des 2 structures.

    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 livre 	
    {
    string nomEmprunteur;
    string nomLivre ;
    } ;
     
    Struct Emprunteur 	
    {
    string nomEmprunteur;
    string adresse ;
    } ;
     
    Vector <livre> liste ;
     Vector <Emprunteur> annuaire ;

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Je pense qu'il faudrait revoir tes structures autrement:
    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
     
    struct livre 	
    {
        string nomLivre;
    };
     
    struct Personne
    {
        string nom;
        string adresse;
    };
     
    struct Emprunt
    {
        Livre & livre;
        Personne & personne;
    };
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Hello,

    C'est un cas d'utilisateur de std::multimap / std::unordered_multimap :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct Livre {
       std::string titre;
    };
     
    struct Emprunteur {
       std::string nom;
    };
     
    std::multimap<Emprunteur, Livre> livresParEmprunteur;
    std::multimap<Livre, Emprunteur> emprunteursParLivre;

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2015
    Messages : 53
    Points : 85
    Points
    85
    Par défaut
    Salut,

    pour quoi ne pas mettre une struct emprunteur dans la stuct livre ?

    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 livre 	
    {
     Struct Emprunteur *EmprunteurLivre;
     string nomLivre ;
    } ;
     
    Struct Emprunteur 	
    {
    string nomEmprunteur;
    string adresse ;
    } ;
     
    Vector <livre> liste ;
     Vector <Emprunteur> annuaire ;

  5. #5
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par nibors Voir le message
    pour quoi ne pas mettre une struct emprunteur dans la stuct livre ?
    Parce que je ne vois pas en quoi un emprunteur définit un livre.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2015
    Messages : 53
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Parce que je ne vois pas en quoi un emprunteur définit un livre.
    Etant donné qu'un livre ne peut a priori etre emprunté qu'une seul fois a la fois cela me semblait pertinent, néanmoins tu as surement beaucoup plus d'experience que moi tu dois avoir raison ^^

  7. #7
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Ben un livre peut être emprunté par une personne à la fois, mais il peut avoir été emprunté plusieurs fois.
    Pour moi, c'est plus le rôle de la bibliothèque, de gérer les emprunts.
    De plus si un jour tu dois implémenter une librairie, ou ce n'est plus des emprunts mais des ventes?
    Ou même, si tu souhaites juste avoir un livre, sans autres informations (pour des raisons bibliographiques)?

    Moi j'ajouterais une classe Bibliothèque gérant les emprunts:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Bibliothèque
    {
    public:
        using TabEmprunts = std::vector< Emprunt >;
     
    public:
        /* Les petites méthodes qui vont bien et que je te laisse écrire... */
     
    private:
        TabEmprunts m_enCours;
        TabEmprunts m_total;
    };
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. order par plusieurs champs
    Par Death83 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/11/2005, 10h12
  2. Réponses: 4
    Dernier message: 20/11/2005, 18h02
  3. Liste modifiable filtrer par un champ
    Par yoyo30 dans le forum Access
    Réponses: 6
    Dernier message: 05/10/2005, 08h58
  4. Requete croisant deux champs identiques
    Par sabotage dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/08/2005, 11h59
  5. plusieurs champs identiques en ligne
    Par viviking dans le forum Langage SQL
    Réponses: 12
    Dernier message: 18/06/2004, 11h25

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