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

SL & STL C++ Discussion :

[multiset]Déclaration d'un itérateur


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 31
    Par défaut [multiset]Déclaration d'un itérateur
    J'ai déclaré mon multiset de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef multiset <Rouleau> stockRouleaux;
    Comment dois-je déclarer l'itérateur correspondant pour que je puisse parcourir mon multiset, pour afficher son contenu (entre autres) ??

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stockRouleaux::const_iterator it;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 31
    Par défaut
    Bon j'ai déjà eu des remarques sur ce procédé tordu, et je suis on ne peut plus d'accord avec vous, mais bon...
    En fait j'ai fait un héritage du multiset que j'ai déclaré, qui donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    typedef multiset <Rouleau> stockRouleaux;
    stockRouleaux::const_iterator;
     
    class Stock : public stockRouleaux
    {
    	public:
     
    		Stock();
    		bool AjouterRouleau(const Rouleau& in_unRouleau);
    		~Stock();
    };
    et la classe Stock compose la classe Magasin de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Magasin
    {
        private:
     
            Stock StockRouleaux;
     
        public:
     
             Magasin();
             void EntrerRouleau();
             ~Magasin();
    };
    Bon, jusqu'à là OK, c'est tordu, soit, mais c'est les consignes du TP...
    J'aimerais savoir comment parcourir le multiset (enfin stockRouleaux quoi), grâce à mon itérateur it, afin d'en afficher le contenu, et ça dans Magasin.

    Je sais que ça doit avoir à peu près cette tête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(it = StockRouleaux.begin(); it < StockRouleaux.end(); ++it)
    {
     
    }
    Merci d'avance pour votre aide!

  4. #4
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Pourquoi ne pas tout simplement fournir une fonction membre dans ta classe Stock pour afficher le contenu du stock, puis une fonction membre de ta classe magasin qui va appeler la fonction correspondante de la classe Stock.

    D'autre part, ton stockRouleaux::const_iterator; ça compile en étant mis tout seul, comme ça ?


    Ah... Tu as fait hérité ta classe Stock d'un multiset ? C'est vraiment étrange ça !

    Ce serait pas plus simple de faire quelque chose comme ça :

    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
    class Stock
    {
       typedef std::multiset<Rouleau> stockRouleau;
       typedef typename std::multiset<Rouleau>::iterator it;
       typedef typename std::multiset<Rouleau>::const_iterator const_it;
     
       public:
     
    		Stock();
    		bool AjouterRouleau(const Rouleau& in_unRouleau);
    		~Stock();
     
                    // Une nouvelle fonction ici :
                    void AfficherStock () const
                    {
                        for (const_it = monStock.begin() ; const_it != monStock.end(); ++ it)
                           std::cout << *const_it;
                    }
     
       private:
          stockRouleau monStock;
    };
     
    class Magasin
    {
        private:            
            Stock StockRouleaux;
     
        public:
     
             Magasin();
             void EntrerRouleau();
             ~Magasin();
     
             // Nouvelle fonction ici :
             void AfficherContenuMagasin () cons
             {
                  StockRouleau.AfficherStock();
              } 
    };
    Je sais que tu as dit que c'était tordu, tu le reconnais de toi-même, mais quel avantage te procures de faire hériter ta classe d'un multiset ?

  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
    juste pour les archives: c'est mal les enfants, ne faites pas d'héritage d'objets de la SL chez vous.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 31
    Par défaut
    Pour l'héritage de la classe SL, j'en toucherais deux mots à mon prof, c'est juste que je préfère respecter ses consignes pour le moment...au moins je sais que c'est une chose que j'éviterai de faire les prochaines fois par moi même...

    En tout cas merci pour votre aide, malgré mes explications pas toujours claires!

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

Discussions similaires

  1. Déclaration multiple d'une fonction
    Par Julien C. dans le forum Langage
    Réponses: 2
    Dernier message: 17/06/2003, 16h38
  2. Problème de déclaration de segment avec use32
    Par le mage tophinus dans le forum Assembleur
    Réponses: 2
    Dernier message: 10/01/2003, 10h17
  3. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31
  4. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  5. Réponses: 8
    Dernier message: 17/05/2002, 09h08

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