Re[6]: operator[] для std::map
От: jazzer Россия Skype: enerjazzer
Дата: 29.04.03 08:39
Оценка:
Здравствуйте, jazzer, Вы писали:

J>по Стандарту он использует insert с временным объектом, и время тратится создание его, потом присваивание, и на деструктор, а в случае чистого insert'a ничего такого не происходит.


Конкретнее, вот цитата из Стандарта (23.3.1.2):

T& operator[](const key_type& x);

Returns (*((insert(make_pair(x,T()))).first)).second
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: operator[] для std::map
От: jazzer Россия Skype: enerjazzer
Дата: 29.04.03 08:41
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

АТ>Здравствуйте, MaximE, Вы писали:


ДН>Помню, что читал что то про сабж у Мейерса, про то, что иногда его нельзя (не получается) применять, но не вник сильно...


ME>Майерс писал про то, что для map'а operator[] сначала делает find(), затем insert(). Из соображений эффективности для вставок вместо operator[] лучше использовать insert().


АТ>Зачем это, интересно, так делать? Почему не сделать сразу 'insert'?


MaximE всех сбил с толку, ничего такого Мейерс не писал :)
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: operator[] для std::map
От: Bell Россия  
Дата: 29.04.03 08:47
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:


АТ>Зачем это, интересно, так делать? Почему не сделать сразу 'insert'?


Если ключ уже присутствет в контейнере, то обновление ассоциированного значения при использовании insert выглядит гораздо менее элегантно (нужно сохранить возвращаемую insert-ом пару, проанализировать флаг успешности вставки, и только потом произвести обновление, если это необходимо)
Любите книгу — источник знаний (с) М.Горький
Re[4]: operator[] для std::map
От: MaximE Великобритания  
Дата: 29.04.03 09:00
Оценка:
Здравствуйте, jazzer, Вы писали:

J>MaximE всех сбил с толку, ничего такого Мейерс не писал


Попутал маненько

Удалено избыточное цитирование. -- ПК.
Re[3]: [moderator]
От: Павел Кузнецов  
Дата: 29.04.03 10:57
Оценка:
Дмитрий Наумов, пожалуйста, не забывайте удалять лишнее из цитат. -- ПК.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.