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