【发布时间】:2020-08-02 17:56:30
【问题描述】:
我有一个关于 C++ 代码的问题。我的任务是创建一个通用函数来接收不同的 STL 容器(向量、列表、集合)并计算其中的奇数。
我的第一次尝试是:
template <typename T>
void countOdd(T x)
{
int count = 0;
for (int i = x.begin(); i < x.size(); i++)
if (x % 2 == 1)
count++;
cout << count;
}
但是我遇到了很多错误,我认为这不是正确的方法。
【问题讨论】:
-
请分享确切的编译器错误。
T是什么?您是否缺少代码 sn-p 中的template<typename T>? -
标准库中没有
x.begin()将为其返回int的容器 -
x.begin() 返回一个迭代器而不是一个 int。 x 是容器,不是容器内的元素,不能对其执行 x%2
标签: c++ algorithm function generics stl