首先,让我们来看看百度百科上"断言函数"定义说明:

1定义

fr=aladdin#" class="nslog:1019" title="编辑本段" style="text-decoration:none; color:rgb(136,136,136); height:15px; line-height:16px; padding-left:18px; font-size:12px; font-family:宋体; display:block">编辑

一个推断式,一个返回bool值的函数或者仿函数。几元就是函数有几个參数,至于定义和使用。函数定义和一般的函数定义一样。仿函数就是写个类,然后重载operator()。

使用就是在那些以这样的须要返回bool值的函数作參数的函数里用了。

一元谓词函数举比例如以下

1,推断给出的string对象的长度是否小于6
bool GT6(const string &s)
{
return s.size() >= 6;
}
2,推断给出的int是否在3到8之间
bool Compare( int i ) 

  { 

  return ( i >= 3 && i <= 8 ); 

  }

二元谓词举比例如以下

1,比較两个string对象,返回一个bool值。指出第一个string是否比第二个短
bool isShorter(const string &s1, const string &s2)
{
return s1.size() < s2.size();
}

谓词函数主要用于STL算法.比如以下的一个样例

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool isZero(int num){
return num==0;
}
int main(){
vector<int> v1={10,11,12,13};
vector<int> v2({7,8,9,15,0});
auto b1=find_if(v1.begin(),v1.end(),isZero);
if(b1!=v1.end()){
cout<<"v1存在元素0!"<<endl;
}else{
cout<<"v1不存在元素0!"<<endl;
}
auto b2=find_if(v2.begin(),v2.end(),isZero);
if(b2!=v1.end()){
cout<<"v2存在元素0!"<<endl;
}else{
cout<<"v2不存在元素0!"<<endl;
} }

find_if()接受一个谓词函数回调作为參数.

find_if()算法对范围内每一个元素调用谓词,直到这个谓词返回true;

假设返回true,find_if()它返回一个参考的元素迭代器.否则,它在尾部返回迭代.

版权声明:本文博客原创文章。博客,未经同意,不得转载。

C++学习笔记32 断言函数的更多相关文章

  1. Linux学习笔记32——select()函数分析【转】

    Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect.accept.recv或recvfrom这样的阻塞程序 ...

  2. OpenCV 学习笔记03 findContours函数

    opencv-python   4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...

  3. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  4. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  5. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  6. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  7. canvas学习笔记、小函数整理

    http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...

  8. Go语言学习笔记七: 函数

    Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...

  9. Effective STL 学习笔记 32 ~ 33

    Effective STL 学习笔记 32 ~ 33 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

随机推荐

  1. POJ 1915 Knight Moves(BFS+STL)

     Knight Moves Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 20913   Accepted: 9702 ...

  2. 【SEO 决胜网络索引】 课程大纲及第一部分第一课:网络营销战略中的索引

    内容简介 1.课程大纲 2.第一部分第一课: 网络营销战略中的索引 3.第一部分第二课预告: 索引是什么 课程大纲 现在是网络为王的时代,人们越来越离不开互联网: SEO(Search Engine ...

  3. 一个vbs文件将指定文件夹下的文件名输出到指定文件夹下

    'on error resume NextConst MY_COMPUTER=&H11& Const WINDOW_HANDLE=0 Const OPTIONS=0 '设置我的电脑为根 ...

  4. 《TCP/IP作品详细解释2:达到》注意事项--IP地址

    1.接口和地址 如下面的图全部本文中讨论的接口和地址的结构看一个示例配置: 上图中显示了我们三个接口样例:以太网接口,SLIP接口和环回接口. 它们都有一个链路层地址作为地址列表中的第一个结点. 显示 ...

  5. jquery php 百度搜索框智能提示效果

    这个程序是利用php+ajax+jquery 实现的一个仿baidu智能提示的效果,有须要的朋友能够下载測试哦. 代码例如以下 index.html文件,保保存成index.htm <!DOCT ...

  6. GCD下载图片

    cell.myimage.layer.masksToBounds=YES;     cell.myimage.layer.cornerRadius=cell.myimage.frame.size.wi ...

  7. POJ 2531-Network Saboteur(DFS)

    Network Saboteur Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9435   Accepted: 4458 ...

  8. 新版本NDK环境结构(避Cygwin,超快)

    曾经做Android的项目要用到NDK就必需要下载NDK,下载安装Cygwin(模拟Linux环境用的),下载CDT(Eclipse C/C++开发插件),还要配置编译器,环境变量... 麻烦到不想说 ...

  9. Visual Studio Team Services使用教程--添加团队成员

  10. Java读书笔记三(字符串)

    1.介绍 本篇博客将对JAVA中的字符串类的基本知识进行介绍.主要字符串类的一些经常用法等内容. 2.字符串对象的创建 1.有两种形式.可是在开发中常常习惯于String 变量名的形式来进行操作. & ...