// algo/adjfind1.cpp #include "algostuff.hpp" using namespace std; // Функция проверяет, что значение следующего объекта вдвое больше // значения предыдущего bool doubled (int elem1, int elem2) { return elem1 * 2 == elem2; } int main() { vector coll; coll.push_back(1); coll.push_back(3); coll.push_back(2); coll.push_back(4); coll.push_back(5); coll.push_back(5); coll.push_back(0); PRINT_ELEMENTS(coll,"coll: "); // Поиск первых двух элементов с одинаковыми значениями vector::iterator pos; pos = adjacent_find (coll.begin(), coll.end()); if (pos != coll.end()) { cout << "first two elements with equal value have position " << distance(coll.begin(),pos) + 1 << endl; } // Поиск первых двух элементов, для которых значение второго // вдвое превышает значение первого pos = adjacent_find (coll.begin(), coll.end(), // Интервал doubled); // Критерий if (pos != coll.end()) { cout << "first two elements with second value twice the " << "first have pos. " << distance(coll.begin(),pos) + 1 << endl; } }