Как узнать, в каком интервале существует индекс, используя set>C++

Программы на C++. Форум разработчиков
Гость
Как узнать, в каком интервале существует индекс, используя set>

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

У меня есть std::set интервалы, значения которого представляют собой некоторые интервалы, это что-то похожее на это:

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

{ 0, 5 },
{ 5, 8 },
{ 8, 10 }
и у меня есть число x могу ли я узнать, в каком интервале он использует low_bound или Upper_bound?
Мне нужно решение со сложностью O(log(N)).
Потому что я помню, что видел, как кто-то делал это примерно так:

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

int x;
std::set intervals;
cin >> x;
auto ans = intervals.upper_bound({ x, INF })
и я не помню, каково было значение INF
Примечание: интервалы не не пересекаются.

Подробнее здесь: https://stackoverflow.com/questions/730 ... airint-int

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