47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
/*
|
||
* exercise_1.hpp
|
||
*
|
||
* Created on: 2 окт. 2021 г.
|
||
* Author: alexander
|
||
*/
|
||
|
||
#pragma once
|
||
|
||
#include <iostream>
|
||
#include <vector>
|
||
#include <random>
|
||
#include <algorithm>
|
||
#include <iterator>
|
||
#include <list>
|
||
|
||
using namespace std;
|
||
|
||
template<template<typename, typename> class TContainer, typename TItem, typename TIterator, typename T>
|
||
void generator(TContainer<TItem, TIterator> &c, const T &rangeStart, const T &rangeEnd)
|
||
{
|
||
random_device rd;
|
||
mt19937 mersenne(rd());
|
||
uniform_real_distribution<double> urd(rangeStart, rangeEnd);
|
||
generate(c.begin(), c.end(), [&]()
|
||
{
|
||
return urd(mersenne);
|
||
});
|
||
}
|
||
|
||
template<template<typename, typename> class TContainer, typename TItem, typename TIterator>
|
||
void print(const TContainer<TItem, TIterator> &c)
|
||
{
|
||
copy(c.begin(), c.end(), ostream_iterator<TItem> { cout, " " });
|
||
cout << endl;
|
||
}
|
||
|
||
template<template<typename, typename> class TContainer, typename TItem, typename TIterator>
|
||
void insert_sorted(TContainer<TItem, TIterator> &c, const TItem &i)
|
||
{
|
||
typename TContainer<TItem, TIterator>::iterator it = find_if(c.begin(), c.end(), [&](const TItem ¤t)
|
||
{
|
||
return current >= i;
|
||
});
|
||
c.insert(it, i);
|
||
}
|