我需要检查 a 是否std::set包含某个范围内的元素/元素。例如,如果集合是 a set<int> {1, 2, 4, 7, 8},并且给定一个int区间[3, 5](包括两个端点),我需要知道集合中是否有元素。在这种情况下,返回 true。但如果区间为[5, 6],则返回 false。间隔可能是[4, 4],但不是[5, 3]。
看起来我可以使用set::lower_bound,但我不确定这是否是正确的方法。我还希望尽可能降低复杂性。我相信使用lower_bound是对数的,对吗?