Одна из задач ленивого поиска - найти первый элемент в последовательности, равный цели (при условии, что цель находится в последовательности).
Если у вас есть несколько элементов, которые соответствуют цели, ленивый поиск даст вам любой из них.
Таким образом, binary_search
библиотеки C ++ может быть реализован как не ленивый (и я думаю, что это обычно так), в то время как lower_bound
не может.