c++11之all_of 、 any_of 和 none_of 的用法
0.时刻提醒自己
Note: vector的释放
1.区别
| 函数 | 功能 |
|---|---|
| all_of | 区间[开始, 结束)中是否所有的元素都满足判断式p,所有的元素都满足条件返回true,否则返回false。 |
| any_of | 区间[开始, 结束)中是否至少有一个元素都满足判断式p,只要有一个元素满足条件就返回true,否则返回true。 |
| none_of | 区间[开始, 结束)中是否所有的元素都不满足判断式p,所有的元素都不满足条件返回true,否则返回false。 |
all_of 与 none_of 是相反的,这样就不用修改判断条件了,换函数就行。
2.all_of用法
2.1 代码
// 分数
std::vector<int> vec_score{10 , 2, 33, 43, 52};
// 是否大于100
bool is_greater_than_100 = std::all_of(vec_score.begin(), vec_score.end(), [](int &item) {return 100 < item; });
if (!is_greater_than_100)
std::cout << "不全大于100\n\n";
else
std::cout << "全大于100\n\n";
2.2 输出结果
3.any_of用法
3.1 代码
// 分数
std::vector<int> vec_score{10 , 2, 33, 43, 52};
// 是否存在大于100的元素
bool is_exist_greater_than_100 = std::any_of(vec_score.begin(), vec_score.end(), [](int &item) {return 100 < item; });
if (is_exist_greater_than_100)
std::cout << "存在大于100的分数\n";
else
std::cout << "不存在大于100的分数\n\n";
3.2 输出结果
4.none_of 用法
4.1 代码
// 分数
std::vector<int> vec_score{10 , 2, 33, 43, 52};
// 检查所有分数是否全部不大于100
bool is_less_than_100 = std::none_of(vec_score.begin(), vec_score.end(), [](int &item) {return 100 < item; });
if (is_less_than_100)
std::cout << "所有分数都不大于100\n";
else
std::cout << "存在大于100的分数\n\n";
4.2 输出结果
5.异常
其实,上面的代码写的不够规范,因为这三个函数可能会抛出异常。 参考cppreference
拥有名为 ExecutionPolicy 的模板形参的重载按下列方式报告错误:
◦若作为算法一部分调用的函数的执行抛出异常,且 ExecutionPolicy 为标准策略之一,则调用 std::terminate 。对于任何其他 ExecutionPolicy ,行为是实现定义的。
◦若算法无法分配内存,则抛出 std::bad_alloc 。
c++11之all_of 、 any_of 和 none_of 的用法的更多相关文章
- c++11之find 和 find_if 和 find_if_not 用法
时刻提醒自己 Note: vector的释放 0.头文件 #include <algorithm> 1.区别 返回范围 [first, last) 中满足特定判别标准的首个元素: 函数 功 ...
- 2018年11月10日 input,print,pass 用法,条件语句+字符串
name=input('请输入用户名')#永远等待用户输入 password=input('请输入密码') print(name) print(password) 变量定义的规则: 变量名只能是 字母 ...
- 9.11 Django关于母版语言的灵活用法
2018-9-11 12:45:38 还是这个连接 : http://www.cnblogs.com/liwenzhou/p/7931828.html 注意: 这节讲的是 母版语言的灵活用法! 可 ...
- 07 Mybatis的多表查询1----1对多和多对1---@Results注解用法总结
1.表与表之间的关系及其举例 表之间的关系有4种:一对多.多对一.一对一.多对多. 举例: (1)用户和订单就是一对多 一个用户可以下多个订单 (2)订单和用户就是多对一 多个订单属于同一个用户 (3 ...
- C++11常用特性介绍——for循环新用法
一.for循环新用法——基于范围的for循环 for(元素类型 元素对象 : 容器对象) { //遍历 } 1)遍历字符串 std::string str = "hello world&qu ...
- C++11常用特性介绍——nullptr关键字及用法
一.nullptr关键字及用法 1)NULL的二义性 void func(int) {} void func(int*) {} 当函数调用func(NULL)时会执行哪个函数呢? 先看C++对NULL ...
- C++11 中值得关注的几大变化(网摘)
C++11 中值得关注的几大变化(详解) 原文出处:[陈皓 coolshell] 源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 ...
- C++11 中值得关注的几大变化(详解)
源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 (and Why You Should Care),赖勇浩做了一个中文翻译在这里. ...
- c++11新增的一些便利的算法
c++11新增加了一些便利的算法,这些新增的算法使我们的代码写起来更简洁方便,这里仅仅列举一些常用的新增算法,算是做个总结,更多的新增算法读者可以参考http://en.cppreference.co ...
随机推荐
- Codeforces 453E - Little Pony and Lord Tirek(二维线段树+ODT)
Codeforces 题目传送门 & 洛谷题目传送门 一道难度 *3100 的 DS,而且被我自己搞出来了! 不过我终究还是技不如人,因为这是一个 \(n\log^2n\) + 大常数的辣鸡做 ...
- 查看nginx(Web网页服务器)状态是否正常
Linux每个应用运行都会产生一个进程,那么我们就可以通过查看Nginx进程是否存在来判断它是否启动. 1.有时想知道nigix是否在正常运行,需要用linux命令查看nginx运行情况.执行命令:p ...
- 简单mvc框架核心笔记
简单mvc框架核心笔记 看了thinkphp5的源码,模仿写了一个简单的框架,有一些心得笔记,记录一下 1.目录结构 比较简单,没有tp那么复杂,只是把需要的核心类写了一些. 核心类库放在mykj里, ...
- Mysql笔记(3)
查询总数count(1)查询总和sum(数据名) 查询最大值max(数据名) 查询最小值min(数据名) 查询平均值avg(数据名) 去除重复 通过having来过滤group by字句的结果信息 i ...
- java四则运算规则
java四则运算规则 1.基本规则 运算符:进行特定操作的符号.例如:+ 表达式:用运算符连起来的式子叫做表达式.例如:20 + 5.又例如:a + b 四则运算: 加:+ 减:- 乘:* 除:/ 取 ...
- Idea中JSP页面中out内置对象报错out.println标红问题
问题如图: 解决方法: 导入jar包 1.在pom.xml的<dependencies>里面复制 <dependency> <groupId>javax.servl ...
- 打破砂锅问到底!HTTP和HTTPS详解
HTTP 引自维基百科HTTP:超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数 ...
- 【leetcode】1217. Minimum Cost to Move Chips to The Same Position
We have n chips, where the position of the ith chip is position[i]. We need to move all the chips to ...
- win10产品密钥 win10永久激活密钥(可激活win10所有版本)
https://www.win7w.com/win10jihuo/18178.html#download 很多人都在找2019最新win10永久激活码,其实win10激活码不管版本新旧都是通用的,也就 ...
- C语言time函数获取当前时间
以前放了个链接,但是原作者把博文删了,这里放一个获取时间的代码,已经比较详细所以不做注释 #include<stdio.h> #include<time.h> #include ...


