у меня есть следующий код, который отлично работает.
Задача: по заданному числу n найти следующее и предыдущее число n.
На основе приведенного ниже примера: если n = 50, то я получу 60 и 40 отдельно.
Я могу получить 60, используя upper_bound. Но как мне получить число до 50, я не могу найти предоставленный алгоритм для этого.
set myset;
set::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.
Заранее спасибо! :)