Est-il un moyen de spécifier la valeur par défaut std::map
s' operator[]
revient lorsqu'une clé n'existe pas?
Réponses
Trop de publicités?La norme C++ (23.3.1.2) spécifie que le nouvellement inséré valeur par défaut est construit, afin map
lui-même ne fournit pas un moyen de le faire. Vos choix sont:
- Donner le type de la valeur par défaut constructeur qui initialise à la valeur que vous voulez, ou
- Envelopper la carte dans votre propre classe qui fournit une valeur par défaut et met en oeuvre
operator[]
pour l'insertion de ce défaut.
Il n'y a aucun moyen de spécifier la valeur par défaut - c'est toujours la valeur construite par la valeur par défaut (zéro paramètre du constructeur).
En fait, operator[]
ne doute plus que ce que vous pensez que si une valeur n'existe pas pour la clé donnée dans la carte, il va insérer une nouvelle avec la valeur par défaut du constructeur.