【发布时间】:2012-01-25 02:39:38
【问题描述】:
我需要检查 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 是对数,对吗?
【问题讨论】: