我有一套,我想找到不大于x的最大数字。 (像lower_bound(x)这样的东西)我应该怎么做?有预定义的功能吗?
set<int> myset;
myset.insert(blahblahblah);
int y;
//I want y to be greatest number in myset not greater than x
答案 0 :(得分:1)
您可以使用upper_bound
,如下所示:upper_bound(x)--
。上限为您提供大于x
的第一个元素,因此您寻找的元素就是之前的元素。如果upper_bound
返回begin()
,则需要一个特殊情况。
答案 1 :(得分:0)
除了lower_bound之外,还有upper_bound C++ reference
该函数将迭代器返回到严格大于您的第一个值。如果它返回begin(),那么它们都是,否则从生成的迭代器中减去一个以获得你要查找的值。