std::map<long, double> x;
x[5] = 1.2;
double y = x[5];
double z = x.find(5)->second;
Будет ли одно из этих двух назначений выполняться быстрее, чем другое? (предположим, что запрошенный ключ всегда присутствует на карте) Существуют ли какие-либо служебные данные, связанные с разыменованием итератора при выполнении x.find(5)->second
?
EDIT: Спасибо за ответы. В моей конкретной функции теперь, когда я знаю, что это не медленнее, я, вероятно, поеду с x.find(5)->second
, поскольку мне нужно отметить мою функцию const
(карта является переменной-членом), а оператор []
, очевидно, не позволяет что (поскольку он потенциально модифицирует карту, отсутствует ключ).