Поиск подпоследовательности в C++
Алгоритм search возвращает итератор на начало первого
вхождения образца внутри большего диапазона.
Образец задают отдельной парой итераторов. Если совпадения
нет, результат равен end основного диапазона.
Запишем текст в векторе и выведем найденный символ
в точке совпадения:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<char> text = {'a', 'b', 'c', 'd'};
std::vector<char> pattern = {'b', 'c'};
auto it = std::search(text.begin(), text.end(), pattern.begin(), pattern.end());
std::cout << *it << "\n";
return 0;
}
В векторе {5, 1, 9, 1, 2} найдите подряд идущие 1 и 9 алгоритмом search и выведите следующий за ними элемент.