У меня есть массив отсортированный в строго порядке убывания и элемент val
; Я хочу, чтобы найти индекс наибольшего элемента в массиве, который меньше, чем val (или равен, если val уже существует там), и я хочу сделать это в logn
времени. И обращение вспять массива и выполнение функции upper_bound() не является опцией.Двоичный поиск уменьшающегося списка?
Например. если массив равен {10,5,3,1} и val равен 6, функция должна возвращаться 1.
Я действительно новичок в итераторах и попытался что-то вроде добавления функции сравнения в upper_bound(), чтобы она работала это не удалось. Как я должен это делать.
Примечание: Я проверял подобные вопросы перед публикацией и нашел один, но, к сожалению, это относится к Java.
ли [это] (http://www.cplusplus.com/reference/ algorithm/upper_bound /) не помогает? – P0W