Мне нужно проверить, содержит ли std::set
элемент/элементы в диапазоне. Например, если набор представляет собой set<int>
{1, 2, 4, 7, 8}
и задан интервал int
[3, 5]
(включительно с обеими конечными точками), мне нужно знать, есть ли в наборе элементы. В этом случае верните true. Но если интервал равен [5, 6]
, вернуть false. Интервал может быть [4, 4]
, но не [5, 3]
.
Похоже, я могу использовать set::lower_bound
, но я не уверен, что это правильный подход. Я также хочу, чтобы сложность была как можно ниже. Я считаю, что использование lower_bound
является логарифмическим, верно?