Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Имхо корректно никак, правда ничто не мешает написать &mm[key] ([] возвращает ссылку на объект), но, как я понимаю, этот указатель может стать невалидным в любой момент (не гарантруется что аллокатор не захочет куда-нибудь переместить данный объект). Так что лучше в мапе хранить указатели на объекты.
std::pair<mymap::iterator, bool> info = mm.insert(std::make_pair(id, T));
if( info.second )
std::cout << "элемента не существовало";
else
std::cout << "элемент уже существует с таким ключем";
return info.first;
T>Имхо корректно никак, правда ничто не мешает написать &mm[key] ([] возвращает ссылку на объект), но, как я понимаю, этот указатель может стать невалидным в любой момент (не гарантруется что аллокатор не захочет куда-нибудь переместить данный объект). Так что лучше в мапе хранить указатели на объекты.
map не перемещает обьекты. гарантированно. Ты путаешь с vector.
Здравствуйте, Анатолий Широков, Вы писали:
J>>insert возвращает итератор, указывающий на вставленный элемент
АШ>Он возвращает пару (iterator, bool), а не итератор.
Здравствуйте, Анатолий Широков, Вы писали:
J>>insert возвращает итератор, указывающий на вставленный элемент
АШ>Он возвращает пару (iterator, bool), а не итератор.
И итератор не на элемент, а на пару (константный ключ, значение).
И не автомобиль, а червонец. И не в лотерею, а в карты. И не выиграл, а проиграл.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Анатолий Широков, Вы писали:
J>>>insert возвращает итератор, указывающий на вставленный элемент
АШ>>Он возвращает пару (iterator, bool), а не итератор.
J>не занимайся буквоедством