Здравствуйте, jazzer, Вы писали:
J>по Стандарту он использует insert с временным объектом, и время тратится создание его, потом присваивание, и на деструктор, а в случае чистого insert'a ничего такого не происходит.
Здравствуйте, Андрей Тарасевич, Вы писали:
АТ>Здравствуйте, MaximE, Вы писали:
ДН>Помню, что читал что то про сабж у Мейерса, про то, что иногда его нельзя (не получается) применять, но не вник сильно...
ME>Майерс писал про то, что для map'а operator[] сначала делает find(), затем insert(). Из соображений эффективности для вставок вместо operator[] лучше использовать insert().
АТ>Зачем это, интересно, так делать? Почему не сделать сразу 'insert'?
MaximE всех сбил с толку, ничего такого Мейерс не писал :)
АТ>Зачем это, интересно, так делать? Почему не сделать сразу 'insert'?
Если ключ уже присутствет в контейнере, то обновление ассоциированного значения при использовании insert выглядит гораздо менее элегантно (нужно сохранить возвращаемую insert-ом пару, проанализировать флаг успешности вставки, и только потом произвести обновление, если это необходимо)