我需要检查 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
是对数的,对吗?