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

  1. #1
    Nouveau membre du Club
    Comment initialiser un conteneur map d'une classe avec le constructeur ?
    Bonjour la communauté,

    Soit une classe qui contient entre autre un class enum et un map :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <map>
     
    class maClasse // classe exemple
    {
        public:
        maClasse();
     
        private:
        enum class typedetruc: unsigned int {truc1, truc2, truc3};
        map<typedetruc, unsigned int> myMap;
    };


    Comment puis-je initialiser ce map avec le constructeur après les ":" et non entre les { } ?
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    maClasse::maClasse() : /* Que mettre ici pour remplacer ce qui se trouve entre { } ci-après ? */
    {
        myMap[truc1] = 0;
        myMap[truc2] = 1;
        myMap[truc3] = 2;
    }


    Salutations,
    Rick.

  2. #2
    Expert confirmé
    Bonjour,

    Il faut regarder les constructeurs possibles de std::map, le (5) est le bon.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    maClasse::maClasse() : myMap{{truc1,0},{truc2,1},{truc3,2}} {}

  3. #3
    Nouveau membre du Club
    Merci dalfab !

    D'autant plus pertinent que ça répond à d'autres questions que je me posais.
    Rick.