求前辈们讲解一个小函数··解决方法

求前辈们讲解一个小函数··
这个函数是在一个整型vector对象的元素中搜素某个特定值,如果找到满足要求的元素,则返回指向该元素的迭代器,否则返回一个迭代器,指向该vector对象的end操作返回的元素。此外,如果该值出现了不止一次,还要返回其出现的次数。

求各位大牛们讲解讲解代码。·。·
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)//从这里开始不明白。前面不是已经把end赋给res_iter了吗?
res_iter=beg;
++occurs;
}
return res_iter;


}

------解决方案--------------------
res_iter=end;否则返回一个迭代器,指向该vector对象的end操作返回的元素。

res_iter=beg;返回指向该元素的迭代器
------解决方案--------------------
补充楼上:如果找到多个符合要求的元素,则指向找到的第一个元素。
------解决方案--------------------
意见同二楼一致,那里加上一个if判断的最终意图是:当有多个满足要求的值时,返回第一个满足要求元素的迭代器.如果不加那句,最终返回的是最后一个满足要求的迭代器.当然,你可以把程序简单地改一下,测试一就OK了!
------解决方案--------------------
探讨
引用:
if(res_iter==end)// 这个是比较不是赋值

我说这里。。vector<int>::const_iterator res_iter=end;

------解决方案--------------------
就是为了记住第一次出现的位置,再就是需要统计总次数,所以就这么写了。