diff --git a/homework1/Part1/Functions.h b/homework1/Part1/Functions.h index e09b6be2cca37c4911260cc5342c164ed4089862..0244736450828b39f140212ab9eabf5e0715a780 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); }