Перегрузка операторов для lower_bound c++

У меня есть структура, состоящая из двух чисел. Они лежат в std::vector. Я хочу использовать lower_bound. Какие операторы мне надо перегрузить, чтобы lower_bound сработал?


Ответы (1 шт):

Автор решения: Harry

Вы можете вообще ничего не переопределять, передав в функцию компаратор:

template< class ForwardIt, class T, class Compare >
ForwardIt lower_bound( ForwardIt first, ForwardIt last,
                       const T& value, Compare comp );

Просто по умолчанию, если вы не передаете компаратор, то используется оператор <.

Ну и желательно (но, как ни странно, не обязательно¹ :)), чтобы диапазон был отсортирован с тем же компаратором.

¹ Требование алгоритма — разбиение по значению value, т.е. все элементы, меньшие value, находятся до всех элементов, больших value. Понятно, что чтобы это выполнялось для произвольного value, требуется отсортированность.

→ Ссылка