例如,我在std::set
中设置了一组值:
{1, 2, 3, 5, 6}
一个搜索键,让它为4,我想找到第一个val。少于搜索键,在这种情况下3,怎么做?
在Java中,greater()
中有lower()
,TreeSet
,{{1}}
答案 0 :(得分:18)
只需找到该密钥的lower_bound,然后减去一次。
set<int> a;
set<int>::iterator it = a.lower_bound(5);
if (it != a.begin()) {
it--;
cout << *it << endl;
} else {
cout << "No smaller element found!" << endl;
}
您可以找到完整的示例here。
答案 1 :(得分:2)
您可以使用lower_bound,然后返回一个,即
auto it = set.lower_bound(4);
if(it != set.begin())
{
--it;
}
else
{
//Add error handling
}