быстрый доступ к элементу станд.:: карта

Вы знаете, является ли это какая-либо разница в производительности, когда я получаю доступ к a std::map использование элемента find или operator []?

Каждый возвращается iterator и другой a const ref к объекту.

Какой мог бы быть более быстрым becuase всего из позади сцены STL?

1
задан meagar 19 March 2013 в 13:45
поделиться

2 ответа

Когда вы используете [] для ключа, который не существует, будет вставлен элемент по умолчанию. Этот элемент по умолчанию зависит от определения вашей карты (например, для int это будет ноль).

Когда вы используете find, нет "автоматической" вставки, поэтому она может быть намного быстрее, если вы часто будете искать ключи, которые не существуют.

5
ответ дан 2 September 2019 в 22:51
поделиться

find () - это O (n). оператор [] равен O (1). Следовательно, последнее (обычно) быстрее.

-3
ответ дан 2 September 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: