C++ //谓词 //一元谓词 //概念:返回bool类型的仿函数称为 谓词 //如果 operator()接受一个参数,那么叫做一元谓词 //如果 operator()接受 2 个参数,那么叫做一元谓词
1 //谓词
2 //一元谓词
3 //概念:返回bool类型的仿函数称为 谓词
4 //如果 operator()接受一个参数,那么叫做一元谓词
5 //如果 operator()接受 2 个参数,那么叫做一元谓词
6
7 #include<iostream>
8 #include<string>
9 #include<vector>
10 #include<algorithm>
11 #include<list>
12 #include<map>
13 #include<set>
14 #include<deque>
15
16 using namespace std;
17 //一元谓词
18 class GreaterFive
19 {
20 public:
21 bool operator()(int val)
22 {
23 return val > 5;
24 }
25 };
26
27 void test01()
28 {
29 vector<int>v;
30 for (int i = 0; i < 10; i++)
31 {
32 v.push_back(i);
33 }
34 //查找容器中有没有大于 5 的数字
35 // GreaterFive() 匿名的函数对象
36 vector<int>::iterator it= find_if(v.begin(), v.end(), GreaterFive());
37 if (it == v.end())
38 {
39 cout << "未找到!" << endl;
40 }
41 else
42 {
43 cout << "找到了大于5的数字为:" << *it << endl;
44 }
45
46
47
48 }
49 class MyCompare
50 {
51 public:
52 bool operator()(int val, int va2)
53 {
54 return val > va2;
55 }
56 };
57
58
59 //二元谓词
60 void test02()
61 {
62 vector<int>v;
63 v.push_back(10);
64 v.push_back(20);
65 v.push_back(90);
66 v.push_back(80);
67 v.push_back(50);
68
69 sort(v.begin(), v.end());
70 for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
71 {
72 cout << *it << " ";
73 }
74 cout << endl;
75 //使用函数对象 改变算法策略 改变排序规则
76 sort(v.begin(), v.end(),MyCompare());
77
78 cout << "------------------------" << endl;
79 for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
80 {
81 cout << *it << " ";
82 }
83 cout << endl;
84
85 //list<int>l;
86 //l.push_back(10);
87 //l.sort();
88
89 //set<int>s;
90 //s.insert(20);
91 //
92
93 //map<int, int>m;
94 //m.insert(make_pair(1, 20));
95 //m.insert(pair<int, int>(10, 20));
96 //m[3] = 50;
97 //
98 //deque<int>d;
99 //d.push_back(20);
100 //d.push_front(20);
101 //sort(d.begin(), d.end());
102 }
103
104 int main()
105 {
106 test01();
107 test02();
108 }

C++ //谓词 //一元谓词 //概念:返回bool类型的仿函数称为 谓词 //如果 operator()接受一个参数,那么叫做一元谓词 //如果 operator()接受 2 个参数,那么叫做一元谓词的更多相关文章
- object-c中的BOOL类型
object-c中的布尔类型比C语言中的bool类型早了10年,它具有YES和NO两种值.在object-c中的布尔类型BOOL实际上是一种带符号的字符类型(signed char),它使用的空间是1 ...
- str字符串、bool类型常用方法总结
字符串拼接 必须是字符串与字符串拼接 print('马化腾'+'马云') print('马化腾' * 10) 将打印10个马化腾 字符串翻转 [ : :-1] 字符串可以加和乘,不能减和乘 input ...
- .NET Core 3.0 JsonSerializer.Deserialize 返回dynamic类型对象
.NET Core 3.0 JsonSerializer.Deserialize to dynamic object 因为官方还不支持返回动态类型的对象,只能自己手写一个,临时测试了下没问题,还有些地 ...
- LINQ查询返回DataTable类型
个人感觉Linq实用灵活性很大,参考一篇大牛的文章LINQ查询返回DataTable类型 http://xuzhihong1987.blog.163.com/blog/static/267315872 ...
- Direct3D11学习:(二)基本绘图概念和基本类型
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 在正式开始学习D3D11之前,我们必需首先学习必要的基础知识. 在这篇文章中,我们将介绍一下Direct3D ...
- .NET的堆和栈01,基本概念、值类型内存分配
当我们对.NET Framework的一些基本面了解之后,实际上,还是很有必要了解一些更底层的知识.比如.NET Framework是如何进行内存管理的,是如何垃圾回收的......这样,我们才能写出 ...
- ASP.NET Web Api返回对象类型为JSON还是XML
在Umbraco平台上开发过程中,我用WebApi返回JSON result给前端 前端使用React调用这个web api来获取JSON result 我写的web api方法是返回JSON 类型的 ...
- JavaScript随笔记(一)基础概念以及变量类型
一.JavaScript中的基础概念 1.defer属性 一般我们在引用外部js文件的时候往往是将引用文件的位置放在标签当中,比如那么在标签中引入多个js文件时,浏览器会按照引入顺序加载执行这些引入的 ...
- C#中判断bool 类型 代码的最短写法
看到一个关于写最短代码的, 是一个bool类型判断的: public bool IsNull(object val) { if (val == null) { return true; } e ...
- 修改某个UITextField的键盘的返回键类型以及监听键盘的高度变化,取到键盘动画退出弹出的时间,一起随着键盘顶出来或者压下去,
1.修改某个UITextField的键盘的返回键类型: [_bottomTextView setReturnKeyType:UIReturnKeyDone]; 1.1.textFied点击return ...
随机推荐
- 【K哥爬虫普法】网盘用的好,“艳照门”跑不了
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知 ...
- Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学
Midjourney|文心一格prompt教程[技巧篇]:生成多样性.增加艺术风格.图片二次修改.渐进优化.权重.灯光设置等17个技巧等你来学 1.技巧一:临摹 我认为学习图片类的 prompt,跟学 ...
- 13.2 外部DirectX绘制实现
在前一节中我们简单介绍了D3D绘制窗体所具备的基本要素,本节将继续探索外部绘制技术的实现细节,并以此实现一些简单的图形绘制功能,首先外部绘制的核心原理是通过动态创建一个新的窗口并设置该窗口属性为透明无 ...
- 1.6 编写双管道ShellCode
本文将介绍如何将CMD绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道.启动进程.传输数据等方面对这个功能进行详细讲解.此外,本文还将通过使用 ...
- Linux基础命令 [补档-2023-06-28]
Linux基础命令 1-1.命令的基本格式 Linux系统命令的通用格式为: command [-options] [parameter] 其中 -command 命令本身 -op ...
- centos7安装protobuf|序列化和反序列化工具
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...
- 2023年多校联训NOIP层测试2
2023年多校联训NOIP层测试2 爆零了 T1 HDU 4786 Fibonacci Tree \(0pts\) @wangyunbiao: 不可以,总司令 我:不,可以,总司令 @wangyunb ...
- NC24141 [USACO 2011 Dec G]Grass Planting
题目链接 题目 题目描述 Farmer John has N barren pastures (2 <= N <= 100,000) connected by N-1 bidirectio ...
- 【Unity3D】固定管线着色器一
1 前言 着色器(Shader)是渲染管线中最重要的一环,Unity3D 底层基于 OpenGL 实现,读者可以通过 渲染管线 了解 Unity3D 渲染流程. OpenGL 1.x 为固定管 ...
- 【Android】使用Exoplayer播放视频
1 前言 ExoPlayer 是 google 开源的应用级媒体播放器,github源码 → https://github.com/google/ExoPlayer.相较于 MediaPlayer ...