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);
|
|||
|
}
|