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 ...
随机推荐
- 遇到一个bug,组件不更新内容
解决办法 当v-if的值发生变化时,组件都会被重新渲染一遍.因此,利用v-if指令的特性,可以达到强制刷新组件的目的. <template> <comp v-if="upd ...
- 基于无监督训练SimCSE+In-batch Negatives策略有监督训练的语义索引召回
基于无监督训练SimCSE+In-batch Negatives策略有监督训练的语义索引召回 语义索引(可通俗理解为向量索引)技术是搜索引擎.推荐系统.广告系统在召回阶段的核心技术之一.语义索引模型的 ...
- 基于罪名法务智能知识图谱(含码源):基于280万罪名预测、20W法务问答与法律资讯问答功能
基于罪名法务智能知识图谱(含码源):基于280万罪名预测.20W法务问答与法律资讯问答功能 项目功能 目前知识图谱在各个行业中应用逐步打开,尤其在金融,医疗,法律,旅游方面.知识图谱助力法律智能,能够 ...
- C/C++ 实现FTP文件上传下载
FTP(文件传输协议)是一种用于在网络上传输文件的标准协议.它属于因特网标准化的协议族之一,为文件的上传.下载和文件管理提供了一种标准化的方法,在Windows系统中操作FTP上传下载可以使用WinI ...
- 3.1 Windows驱动开发:内核远程堆分配与销毁
在开始学习内核内存读写篇之前,我们先来实现一个简单的内存分配销毁堆的功能,在内核空间内用户依然可以动态的申请与销毁一段可控的堆空间,一般而言内核中提供了ZwAllocateVirtualMemory这 ...
- 在package.json里面配置npx
1.配置这个npx表示打包的时候选择本地node_modules安装的webpack来打包
- 同时配置github和gitee秘钥
1.设置用户名和邮箱 git config --global --list 查看全局配置信息 git config --global --list 删除配置:必须删除该设置 git config -- ...
- 8、数据库学习规划:MS SQL Server - 学习规划系列文章
微软的SQL Server数据库是笔者最先接触的数据库,虽然之前有Access,但是那个是学校里知道的,没实际去开发基于Access的程序.SQL Server发展到现在已经有很多个版本了,其功能也非 ...
- Docker从认识到实践再到底层原理(九)|Docker Compose 容器编排
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...
- Java - CodeForces - 266A
题目: 桌子上有n块石头排成一行,每一块都可以是红色.绿色或蓝色.计算从表中取出的石头的最小数量,以便相邻的任何两块石头具有不同的颜色.如果一排石头之间没有其他石头,则认为它们相邻. 输入: 第一行包 ...