1 //常用查找算法   find_if
2 #include<iostream>
3 #include<string>
4 #include<vector>
5 #include<algorithm>
6
7 using namespace std;
8
9 //内置数据类型
10
11 class GreateFive
12 {
13 public:
14 bool operator()(int val)
15 {
16 return val > 5;
17 }
18 };
19
20 void test01()
21 {
22 vector<int>v;
23 for (int i = 0; i < 10; i++)
24 {
25 v.push_back(i);
26 }
27 vector<int>::iterator it = find_if(v.begin(), v.end(), GreateFive());
28
29 if (it == v.end())
30 {
31 cout << "没找到!!!" << endl;
32 }
33 else
34 {
35 cout << "找到了大于5的数字!!" << *it << endl;
36 }
37
38 }
39
40 //自定义数据类型
41
42
43
44 class Person
45 {
46 public:
47
48 Person(string name, int age)
49 {
50 this->m_Name = name;
51 this->m_Age =age;
52 }
53
54
55
56 string m_Name;
57 int m_Age;
58 };
59
60 class Greatetwenty
61 {
62 public:
63 bool operator()(Person& p)
64 {
65 return p.m_Age > 20;
66 }
67 };
68
69 void test02()
70 {
71 vector<Person>v1;
72 Person p1("张三", 20);
73 Person p2("李四", 30);
74 Person p3("王五", 40);
75 Person p4("赵六", 50);
76
77 v1.push_back(p1);
78 v1.push_back(p2);
79 v1.push_back(p3);
80 v1.push_back(p4);
81 vector<Person>::iterator it = find_if(v1.begin(), v1.end(), Greatetwenty());
82
83 if (it == v1.end())
84 {
85 cout << "没有找到的!!" << endl;
86 }
87 else
88 {
89 cout << "找到了!!" << it->m_Name << it->m_Age << endl;
90 }
91
92 }
93
94
95 int main()
96 {
97
98 test01();
99
100 test02();
101
102 system("pause");
103
104 return 0;
105 }

C++ //常用查找算法 find_if的更多相关文章

  1. C++ STL 常用查找算法

    C++ STL 常用查找算法 adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-end. ...

  2. 常用查找算法(Java)

    常用查找算法(Java) 2018-01-22 1 顺序查找 就是一个一个依次查找 2 二分查找 二分查找(Binary Search)也叫作折半查找. 二分查找有两个要求, 一个是数列有序, 另一个 ...

  3. STL常用查找算法介绍

    adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-end. #include <io ...

  4. C语言实现常用查找算法——二分查找

    #include<stdio.h> void insert_sort(int a[],int n); int binary_search(int a[],int x,int n); voi ...

  5. python实现常用查找算法

    http://www.cnblogs.com/feixuelove1009/p/6148357.html

  6. C++进阶 STL(3) 第三天 函数对象适配器、常用遍历算法、常用排序算法、常用算数生成算法、常用集合算法、 distance_逆序遍历_修改容器元素

    01昨天课程回顾 02函数对象适配器 函数适配器是用来让一个函数对象表现出另外一种类型的函数对象的特征.因为,许多情况下,我们所持有的函数对象或普通函数的参数个数或是返回值类型并不是我们想要的,这时候 ...

  7. Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性、二分,分块、插值查找算法)

    查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有: 线性查找: 线性查找也称为顺序查找,用于在无序数列中查找. 二分查找: 二分查找也称为折半查找,其算法用于有序数列. ...

  8. 常用的STL查找算法

    常用的STL查找算法 <effective STL>中有句忠告,尽量用算法替代手写循环:查找少不了循环遍历,在这里总结下常用的STL查找算法: 查找有三种,即点线面: 点就是查找目标为单个 ...

  9. 常用查找数据结构及算法(Python实现)

    目录 一.基本概念 二.无序表查找 三.有序表查找 3.1 二分查找(Binary Search) 3.2 插值查找 3.3 斐波那契查找 四.线性索引查找 4.1 稠密索引 4.2 分块索引 4.3 ...

  10. Java中常用的查找算法——顺序查找和二分查找

    Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...

随机推荐

  1. vue混入mixin

    <div id="app"> --{{nick11}} </div> <script> // 全局混入 不需要注册 var m1 = Vue.m ...

  2. 三星发布990 EVO SSD:同时支持PCIe 4.0和PCIe 5.0

    1月8日消息,三星发布了新款产品--990 EVO SSD,这是首款同时支持了PCIe 4.0 x4及PCIe 5.0 x2通道的SSD. 据了解,990 EVO面向中端市场,为2280 M.2规格, ...

  3. 深入浅出Java多线程(六):Java内存模型

    引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第六篇内容:Java内存模型.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在并发编程中,有两个关键问题至关 ...

  4. Odoo—货运管理—主表获取明细表数据计算结果

    在开发货运管理模块的时候,用到了两张表:主表[waybill]和明细表[waybill.detail],主表存放运单主体信息,明细表存放运单货物信息,如下图所示. 上图中红色方框标记的是明细表中行内的 ...

  5. 错误:基于tensorflow识别mnist数据集出现ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[10000,32,28,28] and type float on

    错误:最近,在尝试运行我以前博客代码的时候出现了如下错误 2020-04-03 10:53:22.982491: W tensorflow/core/common_runtime/bfc_alloca ...

  6. 小知识:MySQL修改lower_case_table_names参数

    环境:MySQL 5.7.25 起初创建环境时没有要求表名称不区分大小写,后续应用使用提出要设置lower_case_table_names=1的需求,期望表名不再区分大小写. 修改这个参数需要重启实 ...

  7. 在Java中,对 byte 和 short 类型 进行位操作的时候,严重留意事项

    总结:在java中,对byte和short类型的 右移操作 必须先进行 & 0xff 后再右移,避免byte或short是负数的情况下,导致 右移操作前 自动升为int,前面补了很多1,此时右 ...

  8. raise的研究发现,弄懂,try except 一定要raise 否则非常不利于调试。

    现在很多人 都反应 下载订单后 提示下载成功,但是 软件中却没有这个订单,经过研究发现  原因是我用了 try except end; 这个结构导致的,当订单下载过程中 遇到错误的 时候,程序 没有 ...

  9. Kafka-分布式安装

    一.kafka是什么? Kafka是一个快速.可扩展的.高吞吐.可容错的分布式发布订阅消息系统.Kafka具有高吞吐量.内置分区.支持数据副本和容错的特性,它可以处理消费者规模的网站中的所有动作流数据 ...

  10. linux 搭建http文件服务器

    1.安装httpd服务 yum -y install httpd 2.修改需要访问的文件路径 vi /etc/httpd/conf/httpd.conf ##默认是/var/www/html目录下的文 ...