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 :

implementation structure de données


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 130
    Points : 80
    Points
    80
    Par défaut implementation structure de données
    Bonjour, j'ai une question qui peut paraitre bête mais je la pose quand même sur les structure de données comme les listes ou les tas :
    est ce que à la place d'un pointeur vers le suivant je peux faire une référence sur le suivant donc remplacer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Noeud
    {
    int val;
    Noeud *suivant;
     
    public:
    ....
    };
    par cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Noeud
    {
    int val;
    Noeud suivant;
     
    public:
    ....
    };
    avec une question subsidiaire :
    est ce que il y a changement au niveau des performances entre les pointeurs et référence dans ce cas ?

  2. #2
    screetch
    Invité(e)
    Par défaut
    une référence ne peut jamais etre "rebindée", c'est a dire que tu ne pourras jamais changer le "suivant". De plus, une référence ne peut pas etre laissée vide, donc tout noeud devra avoir un suivant, ce qui n'est pas le cas (ne serait-ce que lors de la construciton, tu dois avoir un premier maillon, un peu le probleme de l'oeuf ou del a poule).

    donc non, pas de référence possible sur ce probleme.

    Niveau perf, c'est implémenté de la meme maniere par le compilo, donc ca doit etre exactement la meme perf.

  3. #3
    Membre confirmé Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Points : 633
    Points
    633
    Par défaut
    1 - Non, car une référence ne peut JAMAIS être non-instanciée.

    2 - Impossible avec des valeurs... La taille de ta struct est infinie! (et tordu avec des refs)

    3 - La syntaxe d'une référence est Type& Nom (Noeud& Suivant)

    [EDIT] C'est mieux là quand même >< !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 130
    Points : 80
    Points
    80
    Par défaut
    ok merci, pour ces précisions

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par Lavock Voir le message
    2 - Impossible avec des valeurs/ref... La taille de ta struct est infinie !
    Pas forcément.

  6. #6
    Membre confirmé Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Points : 633
    Points
    633
    Par défaut
    Si tu arrives à me résoudre :

    Sizeof Data = Sizeof Int + Sizeof Data, je suis preneur !

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par Lavock Voir le message
    Si tu arrives à me résoudre :

    Sizeof Data = Sizeof Int + Sizeof Data, je suis preneur !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct A
    {
       A& m_ra;
       A(A&ra):m_ra(ra){}
       static A a_final;
    };
    A A::a_final(A::a_final);

  8. #8
    Membre confirmé Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Points : 633
    Points
    633
    Par défaut
    Effectivement, suffisait de boucler le dernier élément... ! Ca donne une jolie stack.

  9. #9
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    Citation Envoyé par Lavock Voir le message
    1 - Non, car une référence ne peut JAMAIS être nul.
    int & ri=*((int *)0);

  10. #10
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Citation Envoyé par camboui Voir le message
    int & ri=*((int *)0);
    Je crois que ce qu'il voulait dire, c'est qu'une référence doit toujours être initialisée.

    Le réel problème c'est qu'on peut pas changer d'objet référencé.

  11. #11
    Membre confirmé Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Points : 633
    Points
    633
    Par défaut
    Vous êtes tatillons quand même ! Oui je voulais dire non-instancié, mais quand même, vous êtes tatillons >< !

  12. #12
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Citation Envoyé par Lavock Voir le message
    Vous êtes tatillons quand même ! Oui je voulais dire non-instancié, mais quand même, vous êtes tatillons >< !
    Mais non, c'est juste qu'en programmation, on doit être formel

  13. #13
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par Lavock Voir le message
    3 - La sémentique d'une référence est Type& Nom (Noeud& Suivant)
    Et la troisième : il me semble que ceci est un problème de syntaxe et non de sémantique...

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Une référence n'est jamais nulle tant qu'on ne commence pas à jouer avec les pointeurs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Implementation d'un tableau de structure de données
    Par macdack dans le forum Débuter
    Réponses: 3
    Dernier message: 04/07/2014, 18h33
  2. Aide pour diagramme de structure des données
    Par DeezerD dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/12/2004, 20h10
  3. Méta-Programmation - [ structures de données ]
    Par Dam)rpgheaven dans le forum C++
    Réponses: 3
    Dernier message: 03/12/2004, 20h38
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 16h15
  5. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 18h10

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