Метод lower_bound
Метод lower_bound класса set возвращает итератор,
указывающий на первый элемент в контейнере, ключ которого
не меньше заданного значения. Если такого элемента нет,
метод возвращает итератор end. В параметр мы передаем
значение, для которого нужно найти нижнюю границу.
Синтаксис
iterator lower_bound(const value_type& val);
const_iterator lower_bound(const value_type& val) const;
Пример
Давайте найдем первый элемент в множестве, который не меньше
числа 3:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> st = {1, 2, 3, 4, 5};
auto it = st.lower_bound(3);
if (it != st.end())
{
cout << *it << endl;
}
else
{
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
3
Пример
Давайте найдем первый элемент, который не меньше числа 6.
Так как в множестве нет такого элемента, метод вернет итератор
на end:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> st = {1, 2, 3, 4, 5};
auto it = st.lower_bound(6);
if (it != st.end())
{
cout << *it << endl;
}
else
{
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Not found"
Пример
Давайте найдем первый элемент, который не меньше числа 0.
Так как все элементы множества больше 0, метод вернет
итератор на первый элемент:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> st = {1, 2, 3, 4, 5};
auto it = st.lower_bound(0);
if (it != st.end())
{
cout << *it << endl;
}
else
{
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
1