From 4b864673d80e0152a47c19bc63fe057fe170377b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=20=D0=91=D0=BE=D0=B3=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2?= Date: Sun, 21 Nov 2021 10:45:09 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BF=D0=BE=20Functions.h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- homework1/Part1/Functions.h | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/homework1/Part1/Functions.h b/homework1/Part1/Functions.h index e09b6be..0244736 100644 --- a/homework1/Part1/Functions.h +++ b/homework1/Part1/Functions.h @@ -25,7 +25,7 @@ public: } }; -template +template //!!! Зачем тут нужен Container_iterator, если есть Container void container_printout(const Container& p_cont) { std::cout << "_____" << std::endl; unsigned int count = 1; @@ -52,7 +52,9 @@ void CreateData_file(const std::string& filename) { void CreateData_iter(const std::string& filename) { srand(time(nullptr)); - std::vector tofile(100); + + std::vector tofile(100); //!!! Функции не должны зависеть от типа контейнера + generate(tofile.begin(), tofile.end(), []() { return rand() % 101 - 50; }); std::ofstream file2(filename); if (!file2) { @@ -67,7 +69,9 @@ void LoadData_file(ContainerType& container, const std::string& filename) { if (!file) { throw "File can't be opened"; } - int n; + + int n; //!!! Функции не должны зависеть от конкретных типов + while (!file.eof()) { file >> n; container.push_back(n); @@ -86,13 +90,13 @@ void LoadData_iter(ContainerType& container, const std::string& filename) { template void Modify_1(Type& container) { - int sum = 0; - int sum_abs = 0; - int count = 0; + int sum = 0;//!!! Функции не должны зависеть от конкретных типов + int sum_abs = 0;//!!! Функции не должны зависеть от конкретных типов + int count = 0;//!!! Функции не должны зависеть от конкретных типов auto i = container.begin(); while ((*i) > 0) i++; - int neg = *i; + int neg = *i;//!!! Функции не должны зависеть от конкретных типов double k = (neg + container[49]) / 2; i = container.begin(); @@ -127,7 +131,7 @@ void Modify_2(IteratorType begin, IteratorType end) { i = begin; for (int n = 0; n < 49; n++) { i++; }; - double k = (neg + *i) / 2; + double k = (neg + *i) / 2;//!!! Функции не должны зависеть от конкретных типов i = begin; while (i != end) { (*i) = (*i) / k; @@ -142,7 +146,7 @@ void Modify_3(Type& container) { i++; int neg = *i; - double k = (neg + container[49]) / 2; + double k = (neg + container[49]) / 2;//!!! Функции не должны зависеть от конкретных типов std::for_each(container.begin(), container.end(), [k](auto& cur) { cur = cur / k; }); } @@ -153,8 +157,8 @@ bool Modify_4(const std::string& p_file_name) { return false; } - int minimal = 0; - int cur_num; + int minimal = 0;//!!! Функции не должны зависеть от конкретных типов + int cur_num;//!!! Функции не должны зависеть от конкретных типов if (!Fstr_in >> minimal) { return true; @@ -170,6 +174,9 @@ bool Modify_4(const std::string& p_file_name) { Fstr_in.close(); Fstr_in.open(p_file_name); std::ofstream Fstr_out("modif_4"); + + + //!!! Функции не должны зависеть от конкретных типов (int) std::transform(std::istream_iterator(Fstr_in), std::istream_iterator(), std::ostream_iterator(Fstr_out, "\n"), fnc); Fstr_in.close(); @@ -201,10 +208,16 @@ void outputResult_file(const std::string& filename, ContainerType& container) { template void outputResult_iter(const std::string& filename, ContainerType& container) { std::ofstream file(filename); + + //!!! Функции не должны зависеть от конкретных типов (int) std::copy(container.begin(), container.end(), std::ostream_iterator (file, " ")); + file.close(); std::cout << " Result: " << std::endl; + + //!!! Функции не должны зависеть от конкретных типов (int) std::ostream_iterator input(std::cout, " "); + std::copy(container.begin(), container.end(), input); } -- GitLab