Поиск с конца в C++
Алгоритм find_end ищет образец, начиная с хвоста
основной последовательности.
Полезен, когда одно и то же сочетание встречается несколько раз и нужен самый правый фрагмент. Итератор указывает на первый элемент образца или на конец при неудаче. Запишем числа и выведем значение в найденной позиции:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> data = {2, 3, 2, 3, 4};
std::vector<int> key = {2, 3};
auto it = std::find_end(data.begin(), data.end(), key.begin(), key.end());
std::cout << *it << "\n";
return 0;
}
В массиве {0, 7, 7, 8, 7, 7} найдите последнюю пару двух семерок алгоритмом find_end и выведите число сразу после нее.