Добрый день. Данная задача реализована в двух файлах чтоб была возможность передавать разные виды массивов, в функции. Программа может работать со всеми видами массива кроме list и forword-list. Файл main.cpp #include #include #include "Header.h" int main() { std::deque vec; int vectorSize = 0; std::cout << "Enter vector size: "; std::cin >> vectorSize; vectorFill(vec, vectorSize); checkVector(vec); sumVector(vec); return 0; } Файл Header.h #pragma once template void vectorFill(_Vec &vec, int vectorSize) { int tmp; for (int i = 0; i <= vectorSize - 1; ++i) { // Заполняем вектор (массив) std::cin >> tmp; vec.push_back(tmp); } } template void checkVector(_Vec &vec) { auto it = vec.begin() + 1; // итератор k auto ik = vec.begin() + 1; // итератор i while (it != vec.end()){ // Делаем все необходимые замены (на блок-схеме первый цикл) if (*it < *ik) { *it = *ik; } else { ++ik; *ik = *it; --ik; } ++it; } } template void sumVector(_Vec &vec) { int sum = 0; auto it = vec.begin() + 1; auto ik = vec.begin(); while (it != vec.end()) { // Второй цикл блок-схемы if (*it <= *ik + 4) { sum += *it + *ik; ++it; } } std::cout << sum << "Done by asdasfb326:)"; }