как проверить, есть ли у множества элемент(ы) в определенном диапазоне в C++

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

Похоже, что я могу использовать set::lower_bound, но я не уверен, что это правильный подход. Я также хочу сохранить сложность как можно ниже. Я полагаю, что использование lower_bound является логарифмическим, правильно?

6
задан James McNellis 25 January 2012 в 02:59
поделиться