【发布时间】:2017-04-15 14:07:10
【问题描述】:
我正在研究一个关于 STL 迭代器的问题,问题是:创建一个 Sum() 函数来计算两个迭代器之间的总和。
template<class T1, class T2 >
double Sum<T1,T2>(map<T1,T2>& start, map<T1,T2>&end)
{
double sum = 0.0;
class map<T1,T2>::const_iterator i;
for (i = start; i != end; ++i)
{
sum += i->second;
}
return sum;
}
下面是我的 main() 中的内容:
map<string, double>::const_iterator map_StartIter =doubleMap.begin();
map<string, double>::const_iterator map_EndIter = doubleMap.end();
cout<<"(2 iterator) map Sum is "<< Sum(map_StartIter,map_EndIter) << endl;
它抛出一个错误,提示错误 C2768: 'Sum' : 非法使用显式模板参数
出了什么问题?
【问题讨论】:
标签: c++ templates dictionary stl iterator