Мне нравится использовать std::algorithm
всякий раз, когда я могу работать с простыми массивами. Теперь у меня есть 2 сомнения; предположим, я хочу использовать std::lower_bound
, что произойдет, если значение, которое я укажу в качестве аргумента, не будет найдено?
int a[] = {1,2,3,4,5,6};
int* f = std::lower_bound(a,a+6,20);
Результат, который я получаю при печати *f, равен 20.
То же самое происходит, если я использую std::find
.
int a[] = {1,2,3,4,5,6};
int* f = std::find(a,a+6,20);
Результат, который я получаю при печати *f, равен 20.
std::lower_bound
работает лучше, чем std::find
, поскольку реализует алгоритм бинарного поиска. Если массив большой, скажем, максимум 10 элементов, может ли std::find работать лучше? За кулисами std::lower_bound вызывает std::advance и std::distance .. может быть, я мог бы сэкономить и на этих вызовах?Большое спасибо
AFG