diff --git a/cpp1.cpp b/cpp1.cpp new file mode 100644 index 0000000..00ea49d --- /dev/null +++ b/cpp1.cpp @@ -0,0 +1,31 @@ +#include + +constexpr size_t ARRSIZ = 5; + +int increment(int n) { + return n + 1; +} + +template +void print(const int (&arr)[N]){ + + for (int i = 0; i < N; ++i) + std::cout << arr[i] << "\n"; + std::cout << std::endl; +} + +void my_objective(int* arr, const size_t N, int (*f)(int)) { + for (int i = 0; i < N; ++i) + arr[i] = f(arr[i]); +} + +int main() { + + int arr[ARRSIZ] = {0, 1, 2, 3, 4}; + my_objective(arr, ARRSIZ, increment); + + print(arr); + + std::cin.get(); + +} diff --git a/cpp2.cpp b/cpp2.cpp new file mode 100644 index 0000000..03cad54 --- /dev/null +++ b/cpp2.cpp @@ -0,0 +1,25 @@ +#include +#include + + +void print(const std::vector& vec){ + for(const int n : arr) + std::cout << n << "\n"; + std::cout << std::endl; +} + +void my_objective(std::vector& vec, int (*f)(int)) { + for (int i = 0; i < vec.size(); ++i) + vec[i] = f(vec[i]); +} + +int main() { + std::vector vec = {0, 1, 2, 3, 4}; + + my_objective(vec, [](int n){ return n + 1;}); + + print(vec); + + std::cin.get(); + +} diff --git a/cpp3.cpp b/cpp3.cpp new file mode 100644 index 0000000..6698b3b --- /dev/null +++ b/cpp3.cpp @@ -0,0 +1,25 @@ +#include +#include +#include + +void print(const std::vector& vec){ + for(const int n : arr) + std::cout << n << "\n"; + std::cout << std::endl; +} + +void my_objective(std::vector& vec, const std::function& f) { + for (int i = 0; i < vec.size(); ++i) + vec[i] = f(vec[i]); +} + +int main() { + std::vector vec = {0, 1, 2, 3, 4}; + + my_objective(vec, [&](int n){ return n + 1;}); + + print(vec); + + std::cin.get(); + +} diff --git a/cpp4.cpp b/cpp4.cpp new file mode 100644 index 0000000..8137375 --- /dev/null +++ b/cpp4.cpp @@ -0,0 +1,34 @@ +#include +#include + +struct increment{ + + int operator()(int n) const{ + return n + 1; + } +}; + + +void my_objective(std::vector& vec, const increment& f) { + for (int i = 0; i < vec.size(); ++i) + vec[i] = f(vec[i]); +} + +void print(const std::vector& vec){ + for(const int n : vec) + std::cout << n << "\n"; + std::cout << std::endl; +} + + +int main() { + std::vector vec = {0, 1, 2, 3, 4}; + const increment functor; + + my_objective(vec, functor); + + print(vec); + + std::cin.get(); + +}