Ne std::map::iterator retourner une copie de la valeur ou une valeur en soi?

Je suis en train de créer une carte à l'intérieur d'une carte:

typedef map<float,mytype> inner_map;
typedef map<float,inner_map> outer_map;

Vais-je être capable de mettre quelque chose à l'intérieur de intérieur de la carte, ou ne iterator::la seconde renvoie une copie?

stl_pair.h suggère celui-ci:

74: _T2 second;          ///< @c second is a copy of the second object

mais mon programme de test fonctionnent très bien avec le code comme ceci:

it = my_map.lower_bound(3.1415);
(*it).second.insert(inner_map::value_type(2.71828,"Hello world!");

Alors, où est la vérité? Est-ce une copie ou pas?

InformationsquelleAutor Morse | 2011-03-21