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 ...
随机推荐
- js 闭包详解一
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于Javascript初学者应该是很有用的. 一.变量的作用域 要理解 ...
- iphone(ios)不同设备的内存和游戏不闪退峰值
ios内存限制 不同内存的苹果机型上(1G,2G,3G,4G-),游戏内存的峰值一般最高多少能保证不闪退? 一般来讲最保险的就是不超过机器总内存的50%,具体每个机型的内存限制在列出在下面. 原贴:& ...
- 【druid切换hikari连接池】通过源码分析遇到的问题
一.前言说明 如果不会配置druid连接池的话,可以参考我这篇博文:springboot整合druid: springboot整合所有的starter方法基本都差不多,添加依赖,开启注解,编写配置,增 ...
- 英伟达系列显卡大解析B100、H200、L40S、A100、A800、H100、H800、V100如何选择,含架构技术和性能对比带你解决疑惑
英伟达系列显卡大解析B100.H200.L40S.A100.A800.H100.H800.V100如何选择,含架构技术和性能对比带你解决疑惑 近期,AIGC领域呈现出一片繁荣景象,其背后离不开强大算力 ...
- PaddleHub--{超参优化AutoDL Finetuner}【二】
相关文章: 基础知识介绍: [一]ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?_汀.的博客-CSDN博客_ernie模型 百度飞桨: ...
- docker中的mysql时区修改
永久修改 进入容器 docker exec -it mysql5.7 bash 查看当前时区 date -R 修改时区 cp /usr/share/zoneinfo/PRC /etc/localtim ...
- (C语言)课后题之计算器
#include <stdio.h> void main() { //定义两个算术变量,四个运算结果变量 int a,b,sum,sub,mul,mod; double div; prin ...
- 如何减少Exadata计算节点CPU的Core数量
最近为某客户做一个Exadata的PoC测试,要求是X8 1/8 rack配置,目前机器是1/4 rack的硬件. OEDA配置时只选择了1/8 rack选项,其他都没有配置.但是在一键刷机时会发现跳 ...
- Oracle-报错信息显示问号或者乱码(Oracle 19c)
问题描述: 通过sqlplus登录Oracle19c时,执行SQL出现报错时,显示错误码出现问号: 解决方法: su - oracle vi .bash_profile 添加如下一行内容: ex ...
- Hadoop-大数据组件版本号查看
1.操作系统 cat /etc/redhat-release ; 2.JDK java -version 3.SCALA scala --version 4.MySQL mysql --versio ...