Метод find
Метод find класса unordered_set выполняет поиск элемента с указанным ключом в неупорядоченном множестве. В единственный параметр мы передаем ключ, который нужно найти. Метод возвращает итератор на найденный элемент, если он присутствует в контейнере. Если элемент не найден, возвращается итератор на позицию после последнего элемента (итератор end).
Следует помнить, что элементы в unordered_set хранятся в неупорядоченном виде, поэтому итератор указывает на элемент, но не определяет его позицию в контейнере.
Синтаксис
uset.find(key)
Пример
Давайте создадим множество с числами и найдем в нем элемент со значением 3:
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = {1, 2, 3, 4, 5};
auto it = uset.find(3);
if (it != uset.end()) {
cout << "Found: " << *it << endl;
} else {
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Found: 3"
Пример
Давайте попробуем найти элемент, которого нет в множестве, например число 10:
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = {1, 2, 3, 4, 5};
auto it = uset.find(10);
if (it != uset.end()) {
cout << "Found: " << *it << endl;
} else {
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Not found"
Пример
Давайте создадим множество строк и найдем в нем строку "b":
#include <iostream>
#include <unordered_set>
#include <string>
using namespace std;
int main()
{
unordered_set<string> uset = {"a", "b", "c", "d", "e"};
auto it = uset.find("b");
if (it != uset.end()) {
cout << "Found: " << *it << endl;
} else {
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Found: b"
Смотрите также
-
класс
unordered_set,
который представляет неупорядоченное множество -
метод
insert,
который добавляет элементы в множество -
метод
contains,
который проверяет наличие элемента в множестве -
метод
erase,
который удаляет элементы из множества