/* Даны натуральные числа n,а1...аn. Определить количество членов аk последовательности а1...аn, имеющих четные порядковые номера и являющихся нечетными числами. */ // инклуды см. выше void f2() { namespace lm = boost::lambda; int arr[] = {5, 1, 10, 20}; const size_t N = sizeof(arr) / sizeof(arr[0]); std::vector<int> v(arr, arr + N); int position = 1; // порядковый номер начинается с 1 int count = 0; // фнуктор выписывать лень, в примере показан способ // только через lambda-функцию std::for_each(v.begin(), v.end(), ( // отлавливаем чётную позицию и нечётный элемент lm::if_(!(lm::var(position)++ & 1) && (lm::_1 & 1)) [ lm::var(count)++ ] ) ); printf("count=%d\n", count); } |