STL中使用count、count_if函数释疑

     看一篇STL学习的文章,作者为Scott Field ,不知道为什么作者使用count和count_if函数都是使用四个参数,计数放到第四个参数,返回值是bool型。文章中解释的是“每次当第三个条件满足时,把第四个变量加一”。但我查阅MSDN发现都是三个参数,返回size_t。怀疑是STL标准的版本问题。

(文章地址:http://www.stlchina.org/twiki/bin/view.pl/Main/STLIntroduce)

count_if函数原型如下:

Code

前两个参数是iterator(迭代器),表示查找半闭合区间的前后两个位置,第三个参数为一个用户定义的predicate function object,而predicate意思就是说是一个返回值是bool型的仿函数(function object,也称functor)。

count函数原型如下:

Code

前两个参数如上,只是第三个参数是一个T类型的常量,相比之下,count_if具有更大的灵活性。

一切以MSDN为准,所以使用应改为如下:

Code

编译环境:WINDOWS XP SP3,vs2005

posted @ 2009-01-22 20:29  纸纹  阅读(2927)  评论(0编辑  收藏  举报