// algo/findend1.cpp #include "algostuff.hpp" using namespace std; int main() { deque coll; list subcoll; INSERT_ELEMENTS(coll,1,7); INSERT_ELEMENTS(coll,1,7); INSERT_ELEMENTS(subcoll,3,6); PRINT_ELEMENTS(coll, "coll: "); PRINT_ELEMENTS(subcoll,"subcoll: "); // Поиск последнего вхождения subcoll в coll deque::iterator pos; pos = find_end (coll.begin(), coll.end(), // Интервал subcoll.begin(), subcoll.end()); // Подинтервал // Цикл повторяется до тех пор, пока внутри coll // успешно находится очередное вхождение подинтервала deque::iterator end(coll.end()); while (pos != end) { // Вывод позиции первого элемента cout << "subcoll found starting with element " << distance(coll.begin(),pos) + 1 << endl; // Поиск следующего вхождения subcoll end = pos; pos = find_end (coll.begin(), end, // Интервал subcoll.begin(), subcoll.end()); // Подинтервал } }