博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL - 判断式(Predicate) - 单参判断式(Unary Predicate)
阅读量:5953 次
发布时间:2019-06-19

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

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 
#include "MathUtil.h"bool MathUtil::isPrime(int number){ // ignore negative sign number = abs(number); // 0 and 1 are no prime numbers if (number == 0 || number == 1) { return false; } // find divisor that divides without a remainder int divisor; for (divisor = number / 2; number%divisor != 0; --divisor) { ; } // if no divisor greater than 1 is found, it is a prime number return divisor == 1;}

测试代码

PredicateTest.cpp

#include 
#include
#include
#include "../../Algorithm/MathUtil.h"#include "PredicateTest.h"using namespace std;void PredicateTest::unaryPredicate(){ list
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 ----------------

 

转载地址:http://ohaxx.baihongyu.com/

你可能感兴趣的文章
Intel彻底封杀Skylake非黑盒版超频
查看>>
大数据和人工智能将成消费金融主要驱动力
查看>>
大数据先行 传统金融转型需从体制上创新
查看>>
贵州出台首部大数据地方法规 数据开放引入负面清单
查看>>
全球以太网交换机和路由器市场:谁领跑?
查看>>
17家新创 组物联网国家队
查看>>
工信部:2020年启动5G商用
查看>>
2016年CIO的五个优先级
查看>>
移动办公之路的行业探索
查看>>
Berg Insight:移动M2M连接将实现长足发展
查看>>
2017年云计算行业新动向盘点
查看>>
雅虎因发送垃圾短信面临50万人集体诉讼
查看>>
可视化分析:洞见数据的秘诀
查看>>
《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.15 如何掌握拍摄方向
查看>>
hdfs haadmin使用,DataNode动态上下线,NameNode状态切换管理,数据块的balance,HA下hdfs-api变化(来自学习资料)...
查看>>
Apache Tomcat 信息泄露漏洞(CVE-2016-8747)
查看>>
《HBase企业应用开发实战》—— 3.6 本章小结
查看>>
《UNIX环境高级编程(第3版)》——2.6 选项
查看>>
collectd 5.7.2 发布,系统监控和统计工具
查看>>
浏览器市场 Chrome 仍占主导地位,IE 继续下降
查看>>