count统计等于指定值的元素个数,count_if通过谓词统计满足条件的元素个数,二者均需有效迭代器,适用于支持迭代器的容器,常用于简化条件统计逻辑。

在C++中,count 和 count_if 是标准库
count:统计等于特定值的元素个数
count函数用于统计区间内与指定值相等的元素数量。其基本语法如下:
count(起始迭代器, 结束迭代器, 值)返回值是满足条件的元素个数。
示例:
立即学习“C++免费学习笔记(深入)”;
#include#include
#include iostream>
int main() {
std::vector
int target = 2;
int n = std::count(nums.begin(), nums.end(), target);
std::cout // 输出:数字 2 出现了 3 次。
return 0;
}
count\_if:统计满足自定义条件的元素个数
count_if更灵活,它接受一个谓词(函数、lambda表达式或函数对象),用来判断每个元素是否满足条件。
count_if(起始迭代器, 结束迭代器, 谓词)常见用法是结合lambda表达式,例如统计偶数、大于某值的数等。
示例:统计偶数个数
#include#include
#include
int main() {
std::vector
int evenCount = std::count_if(nums.begin(), nums.end(),
[](int x) { return x % 2 == 0; });
std::cout // 输出:偶数个数:4
return 0;
}
示例:统计大于5的元素个数
int greaterThanFive = std::count_if(nums.begin(), nums.end(),[](int x) { return x > 5; });
std::cout
使用注意事项
确保传入的迭代器有效,避免越界。容器需要支持迭代器遍历。
谓词函数必须返回布尔值(或可转换为bool的类型)。
对于自定义类型,可以结合成员变量或重载运算符使用count_if。
基本上就这些。count适合简单值匹配,count_if更强大,配合lambda几乎能处理所有条件统计。熟练使用这两个函数能显著简化代码逻辑。










