std :: map :: lower_bound или std :: map :: upper_bound, когда ключ не содержится? - PullRequest
0 голосов
/ 13 ноября 2018

Если я хорошо понимаю, на данной карте m: Если я хочу найти первый ключ, больший или равный данному ключу k, я использую m.lower_bound(k).Если я хочу найти первый ключ, строго больший, чем заданный ключ k, я использую m.upper_bound(k).

Если я все еще хорошо понимаю, нет никакой разницы, если ключ k еще не содержитсяна карте m. В данном конкретном случае (я ЗНАЮ, что моя карта не содержит ключа), есть ли причина выбрать один или другой? Есть ли один быстрее, чем другой?

Примечание: я не использую C ++ 11/14/17 для совместимости.

1 Ответ

0 голосов
/ 13 ноября 2018

Согласно стандарту, они оба работают в логарифмическом времени, и это не имеет значения, если карта содержит ключ или нет.Если есть различия в производительности, это будет зависеть от платформы.

...