alors que se passe-t-il si cdaudio[107] n'existe pas ?
eh bien, l'objet map crée automatiquement une clé "107" liée avec un pointeur vers un objet Audio nul, donc si je ne me trompe pas... et bien sûr pour l'exemple que j'ai donné ;-)... en faisant cdaudio[107] on aura en retour : (Audio*)0. Maintenant si c'est pas un pointeur et disons qu'on avait
map<int numero, Audio objet> cdaudio;
alors il aurait créé l'objet Audio() en utilisant le constructeur par défaut.
pour éviter ce fonctionnement, tu peux bien sûr tester au préalable si la clé existe en utilisant la méthode :
iterator find(const key_type& k)
et pour ça je te laisse lire la doc.
Concernant ta préférence du char*, je vois pas trop ce que tu veux dire mais il doit bien y avoir moyen d'utiliser le std::string.
[^] # Re: std::map
Posté par elloco . En réponse au message Un dictionnaire ... comment faire ?. Évalué à 2.
j'ai pas mieux comme doc.
alors que se passe-t-il si cdaudio[107] n'existe pas ?
eh bien, l'objet map crée automatiquement une clé "107" liée avec un pointeur vers un objet Audio nul, donc si je ne me trompe pas... et bien sûr pour l'exemple que j'ai donné ;-)... en faisant cdaudio[107] on aura en retour : (Audio*)0. Maintenant si c'est pas un pointeur et disons qu'on avait
map<int numero, Audio objet> cdaudio;
alors il aurait créé l'objet Audio() en utilisant le constructeur par défaut.
pour éviter ce fonctionnement, tu peux bien sûr tester au préalable si la clé existe en utilisant la méthode :
iterator find(const key_type& k)
et pour ça je te laisse lire la doc.
Concernant ta préférence du char*, je vois pas trop ce que tu veux dire mais il doit bien y avoir moyen d'utiliser le std::string.