【发布时间】:2013-12-13 05:29:57
【问题描述】:
我尝试编写一个函数,它将对容器的元素求和。这个容器可以是Vector、List、Queue等……这就是我尝试模板的原因。
很遗憾,我收到了这个错误:
'C' 不是模板
来源:
#include <iostream>
#include <vector>
using namespace std;
template<class C, typename T>
T sum( C<T>::iterator begin, C<T>::iterator end ) {
T s = null;
for (C<T>::iterator it = begin; it != end; it++) {
s += *it;
}
return s;
}
int main()
{
vector<int> v = {5, 9, 0, 11};
cout << sum(v.begin(), v.end()) << endl;
return 0;
}
我做错了什么?我该如何解决?
【问题讨论】:
-
如果您想利用 C++ STL 的优势,可以使用accumulate
标签: c++ function templates parameters iterator