Метод find
Метод find класса set выполняет поиск
заданного значения в множестве. В качестве параметра
метод принимает значение, которое нужно найти. Метод
возвращает итератор на найденный элемент, если он есть
в множестве, или итератор end, если элемента нет.
Поскольку элементы в set хранятся в отсортированном
виде и уникальны, поиск работает очень быстро.
Синтаксис
set.find(value)
Пример
Давайте создадим множество из нескольких чисел
и поищем в нем элемент 3:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> st = {1, 2, 3, 4, 5};
auto it = st.find(3);
if (it != st.end()) {
cout << "Found: " << *it << endl;
} else {
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Found: 3"
Пример
А теперь попробуем найти элемент 6, которого
нет в множестве:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> st = {1, 2, 3, 4, 5};
auto it = st.find(6);
if (it != st.end()) {
cout << "Found: " << *it << endl;
} else {
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Not found"
Пример
Метод find также можно использовать
со множеством строк. Давайте найдем строку
"bcd":
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main()
{
set<string> st = {"abc", "bcd", "cde"};
auto it = st.find("bcd");
if (it != st.end()) {
cout << "Found: " << *it << endl;
} else {
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Found: bcd"