Разбираем, как в C++ шаблоны функций позволяют убрать копипасту: пишем одну «заготовку» через
template
<
typename
T
>, понимаем инстанцирование (
my_min
<
int
>,
my_min
<
double
>), «контракт по операциям» (нужны
operator
<,
operator
<<,
operator
+), выбираем правильные параметры (
const
T
&,
T
&,
T), и собираем мини-проект с универсальными утилитами для
std::vector.