Существует два способа вставки карты:
m[key] = val;
или
m.insert(make_pair(key, val));
Мой вопрос: какая операция быстрее? Обычно люди говорят, что первый из них медленнее, потому что STL Standard сначала "вставляет" элемент по умолчанию, если "ключ" не существует на карте, а затем присваивает значение "val" элементу по умолчанию.
Но я не вижу второго способа лучше из-за "make_pair". make_pair на самом деле является удобным способом сделать "пару" по сравнению с pair<T1, T2>(key, val)
. Во всяком случае, оба они выполняют два назначения, один присваивает "ключ" "пара.первой", а два назначает "val" на "пар.секунд". После создания пары карта вставляет элемент, инициализированный 'pair.second'.
Итак, первый способ - 1. 'default construct of typeof(val)
' 2. назначение
второй способ - 1. назначение 2. 'copy construct of typeof(val)
'