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- ...
随机推荐
- 平衡树之treap luoguP3369
今天又复习了一遍treap,这题有前驱后继排名排位添加和删除等操作. 非常好写,虽然代码颇长但逻辑性很强. #include<bits/stdc++.h> using namespace ...
- bzoj1093 [ZJOI2007]最大半联通子图 缩点 + 拓扑序
最大半联通子图对应缩点后的$DAG$上的最长链 复杂度$O(n + m)$ #include <cstdio> #include <cstring> #include < ...
- HDU3585 Information Disturbing 树形dp+二分
http://acm.split.hdu.edu.cn/showproblem.php?pid=3586 题意 : 给定一个带权无向树,要切断所有叶子节点和1号节点(总根)的联系,每次切断边的费用 ...
- 哈希表(散列表)—Hash表解决地址冲突 C语言实现
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.具体的介绍网上有很详 ...
- myBatis 切换数据源(spring事务)理解
1. mybatis (SqlSessionTemplate)的动态代理 a) sqlSession的结构 b)SqlSession 结构 public class SqlSessionTemplat ...
- Segger Real Time Terminal RTT JLINK 客户端软件 GUI 版本
- MYSQL SSL
http://dev.mysql.com/doc/refman/5.6/en/grant.html
- 在apache环境中使用 python stock 请求遇到error: [Errno 13] Permission denied
一个python 项目运行在linux 环境下,使用apache做为web容器. 调用urllib2.urlopen(your url) 或者 xmlrpclib.ServerProxy()请求某个服 ...
- PHP 函数之 call_user_func & call_user_func_array
call_user_func_array (callable $callback, array $param_arr) 參数1: 调用一个回调函数, 參数2: 数组參数是回调函数的參数. call_u ...
- JavaScript中typeof详解
[范围]typeof返回值范围: typeof返回值对应 类型 结果 String "string" Number "number" Boolean " ...