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

C++ //常用查找算法 find //自定义类型需要重载 ==的更多相关文章
- 常用查找算法(Java)
常用查找算法(Java) 2018-01-22 1 顺序查找 就是一个一个依次查找 2 二分查找 二分查找(Binary Search)也叫作折半查找. 二分查找有两个要求, 一个是数列有序, 另一个 ...
- C++ STL 常用查找算法
C++ STL 常用查找算法 adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-end. ...
- STL常用查找算法介绍
adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-end. #include <io ...
- C语言实现常用查找算法——二分查找
#include<stdio.h> void insert_sort(int a[],int n); int binary_search(int a[],int x,int n); voi ...
- python实现常用查找算法
http://www.cnblogs.com/feixuelove1009/p/6148357.html
- C++进阶 STL(3) 第三天 函数对象适配器、常用遍历算法、常用排序算法、常用算数生成算法、常用集合算法、 distance_逆序遍历_修改容器元素
01昨天课程回顾 02函数对象适配器 函数适配器是用来让一个函数对象表现出另外一种类型的函数对象的特征.因为,许多情况下,我们所持有的函数对象或普通函数的参数个数或是返回值类型并不是我们想要的,这时候 ...
- 转载:oracle 自定义类型 type / create type
标签:type create oracle object record 一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarc ...
- oracle 自定义类型 type / create type
一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarchar2. 2.数值类型.如:int.number(p,s).integ ...
- Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性、二分,分块、插值查找算法)
查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有: 线性查找: 线性查找也称为顺序查找,用于在无序数列中查找. 二分查找: 二分查找也称为折半查找,其算法用于有序数列. ...
- 常用查找数据结构及算法(Python实现)
目录 一.基本概念 二.无序表查找 三.有序表查找 3.1 二分查找(Binary Search) 3.2 插值查找 3.3 斐波那契查找 四.线性索引查找 4.1 稠密索引 4.2 分块索引 4.3 ...
随机推荐
- windows加壳程序WinLicense与Themida
反调试提示 开了Procmon.exe之后启动游戏会弹出这个框,这个是程序加壳之后的反外挂,反调试提示框. WinLicense A monitor program has been found ru ...
- windows应用程序icon缓存、查看图标、icon制作方法
windows程序图标缓存 在vs中替换c++程序的图标后,需要重新编译,但是很多情况下都不会刷新,还是看到老的图标,只能重启电脑才能看到新的图标. 通过ChatGPT得到相关的回答如下: 如果在 W ...
- 手撕Vue-监听数据变化
经过上一篇的介绍,已经实现了将模板编译成具体数据,接下来要介绍的是如何监听数据的变化,本章主要完成这个需求即可. 在我们文章的开始,我写了一个 Vue 双向数据绑定原理的文章当中封装了一个 Obser ...
- Mysql索引失效场景
Mysql索引失效场景 序言 众所周知在Mysql中,通过使用索引的方式可以加快查询速度,从而避免全文搜索:而索引本身就像图书馆中所有书籍目录,通过查询关键字就能快速找到目标书籍在几列几行,这 ...
- python快速入门【四】-----各类函数创建
python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...
- C/C++ 提权与强制卸载DLL
权限提升 #include <Windows.h> #include <stdio.h> BOOL SetPrivilege(LPCTSTR lpszPrivilege, BO ...
- 使用Dockerfile安装R语言镜像
Dockerfile: FROM centos7 WORKDIR /opt/mids/ COPY Miniconda3-latest-Linux-x86_64.sh . RUN sh Minicond ...
- Flink CDC引起的Mysql元数据锁
记一次Flink CDC引起的Mysql元数据锁事故,总结经验教训.后续在编写Flink CDC任务时,要处理好异常,避免产生长时间的元数据锁.同时出现生产问题时要及时排查,不能抱有侥幸心理. 1.事 ...
- 素数打表,洛谷P1217 [USACO1.5]回文质数 Prime Palindromes
这道题的最后一个样例TLE(超时)了,判断素数的条件是 i*i<n 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include ...
- 如何在 Mac 上配置 VirtualBox Host-Only 网络适配器
默认Mac 上安装 VirtualBox 后,没有自动配置Host-Only 网络适配器,需要我们手工添加.方法如下: 打开VirtualBox软件, 依次点击 "管理 -> 工具 - ...