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. 在K8S中,Pod重启策略有哪些?

    在Kubernetes(简称K8s)中,Pod的重启策略定义了当容器失败时kubelet如何处理.有三种主要的重启策略: Always: 这是默认的重启策略.如果设置了为"Always&qu ...

  2. ABP系列文章收藏

    1.ASP.NET样板开发框架ABP系列之ABP入门教程详解: https://www.php.cn/csharp-article-380181.html 2.官网中文翻译:  https://www ...

  3. 基于.Net Core3.1 MVC + EF Core的项目(一)框架的初步搭建

    项目暂时分为六大块,结构如图所示 代码地址是  https://github.com/hudean/VacantCloud-   里面有许多没有完成,不过一些大致的内容都写的差不多了,权限认证依赖注入 ...

  4. 剪粘板增强小工具(可多次Ctrl+V)

    前言 windows的剪贴板中存储是的最新一次的复制结果,比如先复制A,再复制B,C,在按下粘贴键时粘贴的是最后一次的结果C,在工作时有时候会遇到需要多次复制粘贴的情景,我就在思考有没有一款工具可以保 ...

  5. 手撕Vue-监听数据变化

    经过上一篇的介绍,已经实现了将模板编译成具体数据,接下来要介绍的是如何监听数据的变化,本章主要完成这个需求即可. 在我们文章的开始,我写了一个 Vue 双向数据绑定原理的文章当中封装了一个 Obser ...

  6. python list 转二叉树 及遍历

    from __future__ import annotations from typing import Union from collections import deque class Tree ...

  7. SpringCloud-05-Gateway

    统一网关Gateway 1.为什么需要网关 网关功能: 身份认证和权限校验 服务路由.负载均衡 请求限流 2.网关的技术实现 在SpringCloud中网关的实现包括两种: gateway zuul ...

  8. STM32CubeMX教程30 USB_DEVICE - MSC外设_读卡器

    1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 ...

  9. Intel Arrow Lake处理器还是8+16 24核心:接口换LGA1851

    Intel已经确认,将在今年内发布未来两代处理器Arrow Lake.Lunar Lake,其中前者将弥补Meteor Lake的不足,同时用于笔记本.桌面.服务器,现在它的核心规格流出了. 这份曝光 ...

  10. Delphi - Case 可以多条件 指定在一起,今天才知道;逗号分隔