gpt4 book ai didi

c++ - 使用 STL 容器设置 upper_bound

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:30 34 4
gpt4 key购买 nike

我有以下完美运行的代码。

目标:给定一个数n,找出n的下一个和上一个数。

基于下面的例子:如果 n = 50,那么我将分别得到 60 和 40。

我可以通过使用 upper_bound 获得 60。但是我如何获得 50 之前的数字我似乎找不到提供的算法来做到这一点。

set<int> myset;
set<int>::iterator it,itlow,itup;

for (int i=1; i<10; i++) myset.insert(i*10); // 10 20 30 40 50 60 70 80 90
itup=myset.upper_bound (50); //
cout << "upper_bound at position " << (*itup) << endl;
//output: 60

引用http://www.cplusplus.com/reference/stl/set/lower_bound/ ,它说 upper_bound “返回指向容器中第一个元素的迭代器,它不比较小于 x”但我确定还有其他东西指向 比较小于 x 的东西.

提前致谢! :)

最佳答案

it = myset.lower_bound(50);
--it;

当然,除非您确定集合中有一个小于 50 的元素,否则不要取消引用该迭代器。您可以检查 it == myset.begin() 是否为此。

关于c++ - 使用 STL 容器设置 upper_bound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567256/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com