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 ...
随机推荐
- Docker 完整指南
欢迎来到 Docker 的完整指南!在这个教程中,我们将深入研究 Docker 的各种特性,从基础的容器操作到高级的网络配置和数据管理.让我们一步步地探索 Docker 的丰富功能. 1. 安装 Do ...
- 常见的WCF面试问题
WCF和ASMX WebService的区别是什么? 最基本的区别在于,ASMX或者ASP.NET WebService是用来通过基于HTTP的SOAP来实现通讯.但WCF可以使用任意协议(HTTP, ...
- [XXL-JOB] 分布式调度XXL-JOB快速上手
1.概述 1.1什么是任务调度 我们可以思考一下下面业务场景的解决方案: 某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券 某银行系统需要在信用卡到期还款日的前三天进行短信提醒 某财务系 ...
- 利用 ASP.NET Core 开发单机应用
前言 现在是分布式微服务开发的时代,除了小工具和游戏之类刚需本地运行的程序已经很少见到纯单机应用.现在流行的Web应用由于物理隔离天然形成了分布式架构,核心业务由服务器运行,边缘业务由客户端运行.对于 ...
- css 修改复选框的样式
效果图: 实现代码如下: /* 选中input标签类型为复选框的 */ input[type="checkbox"] { width: 16px; height: 16px; ve ...
- 设计模式 - 创建型模式 - 单例模式(C++)
1.前言 单例模式属于创建型模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方 ...
- Java 如何在日志中优雅的打印 Exception
一.使用 log 库打印 使用 log 库如 slf4j @Slf4j public class MyDemo { public void demo() { try { int a = 10 / 0; ...
- MySQL-顺序IO和随机IO的区别
顺序IO是指读写操作的访问地址连续.在顺序IO访问中,HDD所需的磁道搜索时间显着减少,因为读/写磁头可以以最⼩的移动访问下一个块.数据备份和日志记录等业务是顺序IO业务.随机IO是指读写操作时间连续 ...
- Linux 环境下使用 sqlplus 访问远程 Oracle 数据库
自己最近需要在 Oracle 生产环境检查一些数据,但是目前大多数的生产环境,出于安全考虑,不会提供图形界面让你使用类似 Navicat 工具让你直接访问数据库,网上找了很多资料,大部分都比较过时或者 ...
- NC50615 取石子游戏 2
题目链接 题目 题目描述 有一种有趣的游戏,玩法如下: 玩家:2人: 道具:N堆石子,每堆石子的数量分别为 \(X_1,X_2,...,X_n\) : 规则: 游戏双方轮流取石子: 每人每次 ...