博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ STL之count函数
阅读量:6005 次
发布时间:2019-06-20

本文共 1839 字,大约阅读时间需要 6 分钟。

 谓词(predicate):是做某些检测的函数,返回用于条件判断的类型,指出条件是否成立。

 总结:

count       :  在序列中统计某个值出现的次数count_if   :    在序列中统计与某谓词匹配的次数

count和count_if函数是计数函数,先来看一下count函数:

count函数的功能是:统计容器中等于value元素的个数。
先看一下函数的参数:
count(first,last,value); first是容器的首迭代器,last是容器的末迭代器,value是询问的元素。
可能我说的不太详细,来看一个例题:
给你n个数字(n<=1000),再给你一个数字m,问你:数字m在n个数字中出现的次数。

看到这道题,我们会想到使用sort+equal_range函数的配合(n的范围大约在1万---10万左右),不过n<=1000 数据量不大,所以我们可以直接使用count函数,这里我们要注意一点:count函数的复杂度是线性的,最坏情况是O(n)。这题很简单,所以我们很快就可以写出代码:

#include 
#include
#include
#include
using namespace std;int main(){ int n; vector
V; cin>>n; for(int i=0;i
>temp; V.push_back(temp); } int ask; while(cin>>ask) { int num=count(V.begin(),V.end(),ask); cout<
<

  

但是,假如我们要使用STL的函数 统计1-10奇数的个数,怎么办呢?

所以,我们就需要使用count_if函数,这是一个很有用的函数,我们要重点介绍它。
看一下count_if函数的参数:
count_if(first,last,value,cmp); first为首迭代器,last为末迭代器,value为要查询的元素,cmp为比较函数。

其实cmp比较函数才是整个count_if函数的核心,cmp比较函数是编程的人写的,返回值是一个布尔型,我相信看完我的例题后,就可以理解这个函数的应用。例题:统计1-10奇数的个数(我的代码):

  

#include 
#include
#include
#include
using namespace std;bool comp(int num){ return num%2;}int main(){ vector
V; for(int i=1;i<=10;i++) V.push_back(i); cout<
<

  

 成绩大于90

 

#include 
#include
#include
#include
#include
using namespace std;struct student{ string name; int score;};bool compare(student a){ return 90
>n; vector
V; for(int i=0;i
>temp.name>>temp.score; V.push_back(temp); } cout<
<

 

转载于:https://www.cnblogs.com/Roni-i/p/8675528.html

你可能感兴趣的文章
安卓手机屏幕投射电脑 手机投屏到win7
查看>>
激光投影机和灯泡投影机的对比
查看>>
安装jdk
查看>>
登录失败:禁用当前用户 解决方法
查看>>
json字符串转java对象
查看>>
linux基础篇-20,seq命令的用法
查看>>
shell学习笔记 (5)
查看>>
PowerDesigner生成数据库建表sql脚本
查看>>
数据库设计之拆分与数据类型选择
查看>>
mount命令的使用
查看>>
Git学习--打标签
查看>>
使用ssh方式 连接到github
查看>>
Mongodb安装以及账户管理(一)
查看>>
什么时候使用存储过程比较适合?
查看>>
制作ubuntu系统u盘镜像,以及安装
查看>>
十九个cPanel系统管理员不得不会的自动化脚本
查看>>
python爬虫整理——爬虫简介
查看>>
JavaWeb导入第三方jar包
查看>>
swift3.0layer折叠 淘宝商品View折叠
查看>>
Git忽略文件配置
查看>>