Возвращает ли std :: map :: iterator копию значения или само значение?

Я пытаюсь создать карту внутри карты:

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

Смогу ли я поместить что-нибудь во внутреннюю карту, или делает iterator :: second возвращает копию?

stl_pair.h предлагает последнее:

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

но моя тестовая программа отлично работает с таким кодом:

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

Так где же правда? Это копия или нет?

25
задан Morse 21 March 2011 в 12:15
поделиться