/* * exercise_1.cpp * * Created on: 2 окт. 2021 г. * Author: alexander */ #include #include #include #include #include #include #include "exercise_1.hpp" using namespace std; template class TContainer, typename TItem, typename TIterator> void generatorInt(TContainer &c, const unsigned int &i) { random_device rd; mt19937 mersenne(rd()); uniform_int_distribution uid(-static_cast(i), i); generate(c.begin(), c.end(), [&]() { return uid(mersenne); }); } template class TContainer, typename TItem, typename TIterator> void generatorFloat(TContainer &c, const unsigned int &f) { random_device rd; mt19937 mersenne(rd()); uniform_real_distribution urd(-static_cast(f), static_cast(f)); generate(c.begin(), c.end(), [&]() { return urd(mersenne); }); } template class TContainer, typename TItem, typename TIterator> void print(const TContainer &c) { copy(c.begin(), c.end(), ostream_iterator { cout, " " }); cout << endl; } template class TContainer, typename TItem, typename TIterator> void insert_sorted(TContainer &c, const TItem &i) { typename TContainer::iterator it = find_if(c.begin(), c.end(), [&](const TItem ¤t) { return current >= i; }); c.insert(it, i); } void exercise_1() { const unsigned int size = 10; int newIntValue = -3; double newDoubleValue = 2.2; vector v(size); generatorInt(v, size); sort(v.begin(), v.end()); print(v); // -9 -9 -4 3 3 4 6 8 9 10 insert_sorted(v, newIntValue); print(v); // -9 -9 -4 -3 3 3 4 6 8 9 10 list l(size); generatorFloat(l, size); l.sort(); print(l); // -9.31992 -6.76971 -5.98545 -2.1297 -1.9722 -0.292701 0.715274 3.43089 4.35249 9.45377 insert_sorted(l, newDoubleValue); print(l); // -9.31992 -6.76971 -5.98545 -2.1297 -1.9722 -0.292701 0.715274 2.2 3.43089 4.35249 9.45377 }