Функция find_first_of
Функция find_first_of ищет в первом диапазоне
первый элемент, который совпадает с любым элементом
из второго диапазона. В первый и второй параметры
мы передаем итераторы начала и конца первого
диапазона, в третий и четвертый - итераторы начала
и конца второго диапазона. Функция возвращает
итератор на найденный элемент или итератор конца
первого диапазона, если совпадений не найдено.
Синтаксис
find_first_of(first1, last1, first2, last2)
Пример
Давайте найдем в векторе {1, 2, 3, 4, 5} первый
элемент, который встречается в векторе {3, 5, 7}:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v1 = {1, 2, 3, 4, 5};
vector<int> v2 = {3, 5, 7};
auto it = find_first_of(v1.begin(), v1.end(), v2.begin(), v2.end());
if (it != v1.end())
{
cout << "Found: " << *it << endl;
}
else
{
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Found: 3"
Пример
Давайте найдем в строке "abcde" первый символ,
который встречается в строке "xyz". Так как
совпадений нет, функция вернет итератор конца:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str1 = "abcde";
string str2 = "xyz";
auto it = find_first_of(str1.begin(), str1.end(), str2.begin(), str2.end());
if (it != str1.end())
{
cout << "Found: " << *it << endl;
}
else
{
cout << "Not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Not found"