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 :

liste chaines en C++


Sujet :

C++

  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut liste chaines en C++
    je travaille sur le tuto:
    http://chgi.developpez.com/pile/
    mais le pb est qu'il est en C.

    Comme je veux faire du C++, je voudrais savoir quelle pourrait etre la traduction de ce code suivant:
    quel serait surtout l'equivalent de malloc(sizeof(pile))?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void Push(pile **p, int Val)
    {
            pile *element = malloc(sizeof(pile));
            if(!element) exit(1);     /* Si l'allocation a échouée. */
            element->valeur = Val;
            element->prec = *p;
            *p = element;       /* Le pointeur pointe sur le dernier élément. */
    }
    merci

  2. #2
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    ne serait-ce pas avec new-delete?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Certes... mais c'est vraiment un code fait pour le C.
    En C++, il n'est pas utile d'écrire soi-même une liste chaînée. La STL en fournit déjà une implémentation performante et de plus générique.
    Tu gagnerais plus à apprendre la STL et à suivre des tutoriaux de C++ et non de C, si tu veux bien sûr faire du C++.

  4. #4
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    Au niveau ou j'en suis, les differences entre C++ et le C ne se font pas ressentir
    et je cherche a comprendre et manipuler les pointeurs
    Donc C++ ou C c'est la meme chose pour faire ca.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    Citation Envoyé par deubelte Voir le message
    Au niveau ou j'en suis, les differences entre C++ et le C ne se font pas ressentir
    c'est pourtant essentiel

    et je cherche a comprendre et manipuler les pointeurs
    Donc C++ ou C c'est la meme chose pour faire ca.
    tu devrais demander sur le forum C

  6. #6
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    C'est toujours intéressant de comprendre les pointeurs en c++, même si par la suite on évite de les utiliser trop souvent (comme en utilisant std::vector par exemple).

    Le malloc est en effet remplacé par un new.
    Par contre il sera nécessaire de gérer la libération de la mémoire (free en c), à l'aide de delete.
    Pour rendre ce comportement plus automatique à l'utilisateur de ton système de pile (peut être seulement toi), il sera bon d'en faire une classe. Ainsi tu pourras par exemple utiliser le destructeur de la classe pile pour libérer la mémoire qui n'a pas été libérée par pop.

    Enfin on c++ (en c aussi je pense) on évite de quitter le programme (exit) dès qu'un problème se présente. On préféra utiliser les exceptions.

    ps:
    il y a plein de cours et de tutoriels sur ces sujets... notamment sur ce site.

  7. #7
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    C'est toujours intéressant de comprendre les pointeurs en c++, même si par la suite on évite de les utiliser trop souvent (comme en utilisant std::vector par exemple).

    >on utilise pas de pointeurs en C++?

  8. #8
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Citation Envoyé par deubelte Voir le message
    Comme je veux faire du C++, je voudrais savoir quelle pourrait etre la traduction de ce code suivant:
    quel serait surtout l'equivalent de malloc(sizeof(pile))?
    le problême du code donné ne prend en compte aucune généricité caractéristique prépondérante du C++.
    Il n'ya pas de patron générique ou template dans ton code en C donc la STL comme cité précedemment est plus adaptée.
    Cela ne sert pas à grand chose de tout réinventer la STL propose des conteneurs de piles , tableaux dynamiques etc..

  9. #9
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    On utilise pas de pointeurs en C++?
    Si bien sur...


    Et j'avais effectivement oublié le fait que la classe sera sans doute générique pour stocker n'importe quel type.
    Cela ne sert pas à grand chose de tout réinventer la STL propose des conteneurs de piles , tableaux dynamiques etc..
    Ça a quand même un grand intérêt pédagogique.

  10. #10
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    Comme mentionné plus haut, regarde la STL

Discussions similaires

  1. Réponses: 12
    Dernier message: 08/02/2005, 23h42
  2. Bibliothèque de listes chainées
    Par gege2061 dans le forum C
    Réponses: 29
    Dernier message: 17/12/2004, 20h15
  3. copie de liste chainée
    Par tomsoyer dans le forum C++
    Réponses: 15
    Dernier message: 31/08/2004, 18h20
  4. Trie liste chaine
    Par Congru dans le forum C
    Réponses: 2
    Dernier message: 30/03/2004, 19h05
  5. tri de liste chainée
    Par RezzA dans le forum C
    Réponses: 7
    Dernier message: 26/01/2003, 20h25

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