Вкл запись cplusplus 'на карте:: insert() Я прочитал о местоположении, которое можно было бы добавить как подсказку для функции, которая "функция оптимизирует свое время вставки" если position
указывает на элемент, который будет предшествует вставленному элементу "для С++ 98, тогда как для С++ 11 происходит оптимизация, если position
указывает на элемент, который будет выполните вставленный элемент (или до конца, если он будет последним)".
Означает ли это, что производительность фрагментов кода из следующей формы (которые изобилуют устаревшим кодом, над которым я работаю и смоделировали после Scott Meyer "Эффективный STL", пункт 24) были затронуты при переключении на компилятор, совместимый с С++ 11
auto pLoc = someMap.lower_bound(someKey);
if(pLoc != someMap.end() && !(someMap.key_comp()(someKey, pLoc->first)))
return pLoc->second;
else
auto newValue = expensiveCalculation();
someMap.insert(pLoc, make_pair(someKey, newValue)); // using the lower bound as hint
return newValue;
Каким будет лучший способ улучшить этот шаблон для использования с С++ 11?