Mettre une map en attribut privé d'une classe [Résolu]

Signaler
Messages postés
20
Date d'inscription
lundi 14 décembre 2020
Statut
Membre
Dernière intervention
3 janvier 2021
-
Messages postés
520
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
3 janvier 2021
-
Bonjour est t'il possible de mettre une map dans une classe en private ?


#include <iostream>
#include <string>
#include <windows.h>
#include <map>

using namespace std;

class alphabet
{
public:

private:

    map<string, int> ressource_alphabet;             //string et int 
    ressource_alphabet["a"] = 0;                             //problème "a"  demande un int ?
    ressource_alphabet["b"] = 1;
    //etc...
};

1 réponse

Messages postés
520
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
3 janvier 2021
4
Bonjour,

Est-ce que l'on peut mettre une map en private? Oui.
Par contre on ne peut pas écrire du code ailleurs que dans une fonction.
Une map peut s'initialiser.
class alphabet {
private:
    std::map<std::string, int> ressource_alphabet{{"a",0},{"b",1},.......};       
};

Mais il y peut être plus simple si le but est d'associer un caractère à un nombre qui indique sa position dans l'alphabet.
int alphabet(char c) { return c - 'a'; }