Это упражнение из предыдущего теста c ++, которое я взял:
Реализация шаблонной функции sum , которая принимает в качестве чисел контейнер и возвращает их сумму. (Совет: если C это тип контейнера, тип элементов возвращается, например, из C :: value_type ).
Во время тестаЯ совсем не был готов, но сейчас, на сумму универсального контейнера, я бы сказал:
template<typename Iter>
double sum(Iter b, Iter e)
{
double ret=0;
for(;b!=e;b++)
ret+=*b;
return ret;
}
или
template<typename C>
double sum(const C& cnt)
{
double ret=0;
for(auto it=cnt.begin();it!=cnt.end();it++)
ret+=*it;
return ret;
}
Мой вопрос здесь, как можноЯ заменил аргумент возврата функции фактическим типом элементов контейнера?