【发布时间】:2012-01-26 12:16:57
【问题描述】:
我在使用下面的通用函数时遇到了一些困难,我希望这个函数采用 2 个迭代器和一个值。该函数应在 2 个迭代器之间进行迭代,并检查该值是否出现并计算出现次数。但我收到以下错误:
没有匹配函数调用'count_c(int, std::vector::iterator, std::vector::iterator)'
template<typename Container>
int count_c(Container i, typename Container::iterator &start, typename Container::iterator &end){
typedef typename Container::iterator Iter;
int count;
for(Iter p = start; p != end; p++){
if((*p) == i){
count = count + 1;
}
return count;
}
int main(){
vector<double> myv;
myv.push_back(9);
myv.push_back(10);
count_c(9, myv.begin(), myv.end());
return 0;
}
这是考试题的一部分:
编写一个通用函数计数:
将一个值和一个容器的两个迭代器作为参数(从哪里开始和 在容器中完成的位置)。
它使用迭代器遍历容器的元素并计算发生的次数—— 容器中的值的参考。
最后,它返回它找到的值的出现次数。
这两个迭代器不一定与 con- 返回的相同 tainer 的 begin() 和 end() 方法!
【问题讨论】: