函数请教,返回迭代器及出现的次数!
vector<int>::const_iterator find_val(
vector<int>::const_iterator beg,
vector<int>::const_iterator end,
int value,
vector<int>::size_type &occurs)
{
vector<int>::const_iterator res_iter = end;
occurs = 0;
for( ; beg != end; ++beg)
if(*beg == value){
if(res_iter == end)
res_iter == beg;
++occurs;
}
return res_iter;
}
int main()
{
vector<int>::size_type ctr;
int ival;
vector<int> ivec;
while( cin>>ival && ival!= 65535 )
{
ivec.push_back(ival);
}
vector<int>::const_iterator it = find_val(ivec.begin(), ivec.end(), 42, ctr) ;
cout<<ctr<<endl;
cout<<*it<<endl;
return 0;
}
it的返回值变成了负值,输出时出错。。。请指正错误。