Как дать намек на std :: map :: lower_bound?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Как дать намек на std :: map :: lower_bound?

Сообщение Гость »

Я хочу дать подсказки на std :: map :: lower_bound < /code>.

Почему это даже не разрешено?

Код: Выделить всё

auto key1 = /* some key */;
auto key2 = /* another key that is greater than `key1` */

auto hint = map.lower_bound(key1);

if (/* some check depending on `hint`*/) {
map.insert_or_assign(hint, key1, 3023);
auto second_hint = map.lower_bound(key2); // we'd rather use `hint` here!

if (/* some check depending on `hint`*/) {
auto b = map.insert_or_assign(second_hint, key2, 199);
}
}
< /code>
Как мы можем сделать эту логику оптимально и не переписывая ее полностью. Проблема заключается в том, что неспособность передать подсказку Lower_bound 
(2 -й) заставляет нас делать один и тот же поиск дважды. Это в 2 раза худшая производительность! < /P>
Пожалуйста, поделитесь идеями о том, как это сделать.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ower-bound
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»