У меня есть следующий код, который отлично работает.с использованием STL Container set upper_bound
Цель: указать число n, найти следующее и предыдущее число n.
Основание на примере ниже: если n = 50, то я получу 60 и 40 отдельно.
Я могу получить 60, используя upper_bound. Но как мне получить число до 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.
Заранее благодарен! :)
Как насчет 'lower_bound'? – chris