是否有std :: set函数用于确定不超过数字x的最大元素?

问题描述 投票:0回答:1

我在线阅读了std::set具有有用的成员函数,可以帮助搜索元素。

特别是

std::set::lower_bound,它将迭代器返回到> =数字x的最小元素,并且std::set::upper_bound,它将迭代器返回到超过x的最小元素。

但是,我想找到一个将迭代器返回给不超过x的largest元素的函数。 C ++中有这样的功能吗?

c++ stl set
1个回答
1
投票

减少从上边界返回的迭代器:

std::set<int> s;
s.insert(3);
s.insert(4);
s.insert(5);
s.insert(7);

auto itor = s.upper_bound(6);
if (itor != s.begin())
{
    --itor;
    std::cout << *itor << std::endl;
}

上面应打印“ 5”

© www.soinside.com 2019 - 2024. All rights reserved.