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 ...
随机推荐
- Map结构映射,避免每一个字段赋值
var query1 = (from fore in forecastShippingDate join ship in shipOutOfStock on fore.Id equals ship.F ...
- vim 从嫌弃到依赖(18)——查找模式进阶
上一篇文章中,我们初步结识了如何使用查找模式,也能够通过n和 N进行查找.这篇将会介绍搜索中更高级的用法.另外在写上一篇文章的时候我发现介绍查找相关内容的时候不能用动图来演示,主要是因为输入的内容太多 ...
- 强化学习从基础到进阶-常见问题和面试必知必答[8]:近端策略优化(proximal policy optimization,PPO)算法
强化学习从基础到进阶-常见问题和面试必知必答[8]:近端策略优化(proximal policy optimization,PPO)算法 1.核心词汇 同策略(on-policy):要学习的智能体和与 ...
- Swift中UITableViewDiffableDataSource的使用
在 iOS 13 中 Apple 为 UITableView 和 UICollectionView 引入了 DiffableDataSource, 让开发者可以更简单高效的实现 UITableView ...
- 神经网络优化篇:详解Batch Norm 为什么奏效?(Why does Batch Norm work?)
Batch Norm 为什么奏效? 为什么Batch归一化会起作用呢? 一个原因是,已经看到如何归一化输入特征值\(x\),使其均值为0,方差1,它又是怎样加速学习的,有一些从0到1而不是从1到100 ...
- 《ASP.ENT Core 与 RESTful API 开发实战》-- (第6章)-- 读书笔记(上)
第 6 章 高级查询和日志 6.1 分页 在 EF Core 中,数据的查询通过集成语言查询(LINQ)实现,它支持强类型,支持对 DbContext 派生类的 DbSet 类型成员进行访问,DbSe ...
- NC50439 tokitsukaze and Soldier
题目链接 题目 题目描述 在一个游戏中,tokitsukaze需要在n个士兵中选出一些士兵组成一个团去打副本. 第i个士兵的战力为v[i],团的战力是团内所有士兵的战力之和. 但是这些士兵有特殊的要求 ...
- 【Unity3D】UGUI之Button
1 Button属性面板 在 Hierarchy 窗口右键,选择 UI 列表里的 Button 控件,即可创建 Button 控件,选中创建的 Button 控件,按键盘[T]键,可以调整 But ...
- 使用xampp安装部署mantis
快速教程请参考: 点击打开链接 http://download.csdn.net/detail/indexman/6830003 --------------------------- Dylan ...
- java处理json类型数据--阿里巴巴fastjson api常用方法实战
fastjson介绍 最近工作上经常需要解析json类型数据以及java对象到json类型的互转,特地研究了下阿里巴巴的fastjson,这个是国内用的 比较多的json转换api,还有其他的入jac ...