STL - 判断式(Predicate) - 单参判断式(Unary Predicate)
Predicate是一种特殊的辅助函数,它会返回Boolean,常常被用来作为排序或者查找准则。
Predicate会有1个或者2个操作数。
Unary Predicate(单参判断式)
例子:
我们先写一个算法,如下:
MathUtil.h
#ifndef _Math_Util_H_
#define _Math_Util_H_ using namespace std; class MathUtil
{
public:
static bool isPrime(int number);
}; #endif
MathUtil.cpp
#include <string>
#include "MathUtil.h" bool MathUtil::isPrime(int number)
{
// ignore negative sign
number = abs(number); // 0 and 1 are no prime numbers
if (number == || number == ) {
return false;
} // find divisor that divides without a remainder
int divisor;
for (divisor = number / ; number%divisor != ; --divisor) {
;
} // if no divisor greater than 1 is found, it is a prime number
return divisor == ;
}
测试代码
PredicateTest.cpp
#include <list>
#include <algorithm>
#include <iostream>
#include "../../Algorithm/MathUtil.h"
#include "PredicateTest.h" using namespace std; void PredicateTest::unaryPredicate()
{
list<int> coll;
int startNumber, endNumber; cout << "Input Start Number: " << endl;
cin >> startNumber;
cout << "Input End Number: " << endl;
cin >> endNumber; // insert elements from start number to end number
for (int i = startNumber; i <= endNumber; ++i) {
coll.push_back(i);
} // search for prime number
auto pos = find_if(coll.cbegin(), coll.cend(), // range
MathUtil::isPrime); // predicate
if (pos != coll.end()) {
// found
cout << *pos << " is first prime number found" << endl;
}
else {
// not found
cout << "no prime number found" << endl;
}
} void PredicateTest::run()
{
printStart("unaryPredicate()");
unaryPredicate();
printEnd("unaryPredicate()");
}
运行结果:
---------------- unaryPredicate(): Run Start ----------------
Input Start Number:
30
Input End Number:
50
31 is first prime number found
---------------- unaryPredicate(): Run End ----------------
STL - 判断式(Predicate) - 单参判断式(Unary Predicate)的更多相关文章
- ng2响应式表单-翻译与概括官网REACTIVE FORMS页面
本文将半翻译半总结的讲讲ng2官网的另一个未翻译高级教程页面. 原文地址. 文章目的是使用ng2提供的响应式表单技术快速搭出功能完善丰富的界面表单组件. 响应式表单是一项响应式风格的ng2技术,本文将 ...
- Angular2响应式表单
本文将半翻译半总结的讲讲ng2官网的另一个未翻译高级教程页面. 原文地址. 文章目的是使用ng2提供的响应式表单技术快速搭出功能完善丰富的界面表单组件. 响应式表单是一项响应式风格的ng2技术,本文将 ...
- Angular2响应式表单-翻译与概括官网REACTIVE FORMS页面
本文将半翻译半总结的讲讲ng2官网的另一个未翻译高级教程页面. 原文地址. 文章目的是使用ng2提供的响应式表单技术快速搭出功能完善丰富的界面表单组件. 响应式表单是一项响应式风格的ng2技术,本文将 ...
- 关于C#判断是否是数字的正则式
有话要说 今天我同事突然让我帮他看个问题,他说想不通为什么数据库中会有不合法的内容,我都已经用正则过滤了,并且在本地调通了的! 我问他是不是你正则有问题,他说没问题啊,前端和后端的正则是一样的,前端我 ...
- shell编程 条件判断式----利用 case ..... esac 判断
条件判断式----利用 case ..... esac 判断 case $变量名称 in <==关键词为 case ,还有变量前有钱字号 "第一个变量内容") &l ...
- Angular11 模板表单、响应式表单(自定义验证器)、HTTP、表单元素双向绑定
1 模板表单 模型通过指令隐式创建 技巧01:需要在模块级别引入 FormsModule ,通常在共享模块中引入再导出,然后在需要用到 FormsModule 的模块中导入共享模块就可以啦 impor ...
- Fixed Responsive Nav – 响应式的单页网站导航插件
Fixed Responsive Nav 是一个响应式的,固定的,触摸友好的单页网站导航插件,响应式导航,流畅的动画滚动.该项目采用渐进增强构建,支持工作在 IE6 及以上版本的浏览器. 你可以给导航 ...
- 判断语句之单if
什么是判断语句? 给定一个判断条件,并在程序执行过程中判断该条件是否成立,根据判断结果执行不同的操作,从而改变代码的执行顺序,实现更多的功能,这就是判断语句. 判断语句if if语句第一种格式:if ...
- Angular4.x 创建组件|绑定数据|绑定属性|数据循环|条件判断|事件|表单处理|双向数据绑定
Angular4.x 创建组件|绑定数据|绑定属性|数据循环|条件判断|事件|表单处理|双向数据绑定 创建 angular 组件 https://github.com/angular/angular- ...
随机推荐
- Wordpress,你好!
[caption id="" align="alignleft" width="1024"] 耳机[/caption] 想了想,还是没有删掉 ...
- 【BZOJ 3090】 树形DP
3090: Coci2009 [podjela] Description 有 N 个农民, 他们住在 N 个不同的村子里. 这 N 个村子形成一棵树.每个农民初始时获得 X 的钱.每一次操作, 一个农 ...
- 【8.26校内测试】【重构树求直径】【BFS模拟】【线段树维护DP】
题目性质比较显然,相同颜色联通块可以合并成一个点,重新建树后,发现相邻两个点的颜色一定是不一样的. 然后发现,对于一条链来说,每次把一个点反色,实际上使点数少了2个.如下图 而如果一条链上面有分支,也 ...
- Redis 3.0 Windows 安装步骤
Redis 3.0 Windows 安装步骤 ----来自 https://www.aliyun.com/jiaocheng/872572.html 发布时间:2018-04-10 来源:网络 上传者 ...
- windows安装zookeeper单机版
1.在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本,目前最新的是3.4.6下载地址:http://mirrors.cnnic.cn/apache/zookeeper/zookeep ...
- drbd + pacemaker
Centos6.5 X86 64 2014-04-27 # yum -y install corosync pacemaker # -.el6.x86_64.rpm pssh--.el6.x86_64 ...
- CentOS 6.9/7通过yum安装指定版本的Redis
一.安装 // 安装依赖 # wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && ...
- 升压转换器 (Boost)
升压转换器 (Boost) 需要将输入电压转换为较高的输出电压时,升压转换器 (Boost)是唯一的选择. 升压转换器透过内部 MOSFET 对电压充电来达成升压输出的目的,而当 MOSFET 关闭时 ...
- Handling Errors and Exceptions
http://delphi.about.com/od/objectpascalide/a/errorexception.htm Unfortunately, building applications ...
- Spring通过Gmail SMTP服务器MailSender发送电子邮件
Spring提供了一个有用的“org.springframework.mail.javamail.JavaMailSenderImpl”类,通过JavaMail API 简化邮件发送过程.这里有一个项 ...