Неверный цикл for
и cout << sum
происходит после return
с sumVector()
.Тип возвращаемого значения (и тип sum
) также должен быть T
, в противном случае sumVector()
ограничивается vector
с элементами int
(или типами, конвертируемыми в int
с).
Что-то вроде следующего, я думаю, это то, что вы ищете:
template<typename T>
T sumVector(const vector<T> &integers2)
{
typename vector<T>::const_iterator constIterator;
T sum=0;
//display vector elements using constIterator
for (constIterator=integers2.begin();
constIterator!=integers2.end();
++constIterator)
{
sum+=*constIterator;
}
cout<<sum;
return sum;
}
Не стоит печатать значение sum
в sumVector()
как (IMO), это более понятно:
cout << "whats the sum: " << sumVector(ages);
Может также потребоваться сохранить результат sumVector()
в переменной и ничего не записывать в стандартный вывод в точке, где вычисляется сумма.