关系类算法函数

简介: 关系类算法函数

equal 比较算法

includes 是不是包含

lexicographical_compare 比较序列(类似于C++字符串的比较)

max 最大值 max_element

min 最小值 min_element

mismatch(比较两个容器,第一次出现不同的地方)

equal 比较算法

这里打印出布尔类型 true ,false

要使用格式控制的头文件 iomanip

采用 boolalpha的方式

#include<iostream>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<functional>
using namespace std;
int main()
{
  vector<int> first{ 1, 2, 3, 4, 5 };
  vector<int> second{ 1, 2, 3 ,4, 5, 6,7 };
  //1.equal 比较算法
  cout << boolalpha << equal(first.begin(), first.end(), second.begin(), second.end());
  return 0;
}

include (是否包含)

首先的条件是:必须要是有序的容器,否则程序会报错

#include<iostream>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<functional>
using namespace std;
int main()
{
  vector<int> first{ 1, 2, 3, 4, 5 };
  vector<int> second{ 1, 2, 3 ,4, 5, 6,7 };
  //2. include 是否包含的算法
  cout << includes(first.begin(), first.end(), second.begin(), second.end());
  return 0;
}

打印的结果是false 或者

lexicographical_compare(比较序列)

第一个小于第二个,返回true

第一个大于第二个,返回false

#include<iostream>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<functional>
using namespace std;
int main()
{
  vector<int> first{ 1, 2, 3, 4, 5 };
  vector<int> second{ 1, 2, 3 ,4, 5, 6,7 };
  //3.lexicograhical_compare
  cout << lexicographical_compare(first.begin(), first.end(), second.begin(), second.end());
  return 0;
}

最大值(max_element)

#include<iostream>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<functional>
using namespace std;
int main()
{
  vector<int> first{ 1, 2, 3, 4, 5 };
  vector<int> second{ 1, 2, 3 ,4, 5, 6,7 };
  //4. 最大值  
  cout << max(1, 2) << endl;
  cout << *max_element(first.begin(), first.end()) << endl;
  return 0;
}

最小值(min_element)

#include<iostream>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<functional>
using namespace std;
int main()
{
  vector<int> first{ 1, 2, 3, 4, 5 };
  vector<int> second{ 1, 2, 3 ,4, 5, 6,7 };
  //5.最小值
  cout << min(4, 3) << endl;
  cout << *min_element(second.begin(), second.end()) << endl;
  return 0;
}

mismatch(找到第一个不同位置的)

如果程序崩溃了,看看两个迭代器的大小是否一样

同时,

这个mismatch的返回值类型很特殊

为pair<迭代器类型, 迭代器类型>

//6. mismatch
  //返回值类型为 pair<迭代器类型,迭代器类型>   
  //pair<vector<int> :: iterator ,vector<int> :: iterator>
  auto m = mismatch(first.begin(), first.end(), second.begin(), second.end());
  cout << *m.first << endl;
  cout << *m.second << endl;


相关文章
|
18天前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
30 4
|
2月前
|
XML JavaScript 前端开发
学习react基础(1)_虚拟dom、diff算法、函数和class创建组件
本文介绍了React的核心概念,包括虚拟DOM、Diff算法以及如何通过函数和类创建React组件。
24 2
|
3月前
|
搜索推荐 算法 Java
现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法
该博客文章通过UML类图和Java源码示例,展示了如何使用适配器模式将QuickSort类和BinarySearch类的排序和查找功能适配到DataOperation接口中,实现算法的解耦和复用。
31 1
现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法
|
3月前
|
数据采集 算法 数据可视化
基于K-Means聚类算法对球员数据的聚类分析,可以自主寻找最优聚类数进行聚类
本文介绍了一个基于K-Means聚类算法的NBA球员数据分析项目,该项目通过采集和分析球员的得分、篮板、助攻等统计数据,使用轮廓系数法和拐点法确定最优聚类数,将球员分为不同群组,并提供了一个可视化界面以便直观比较不同群组的球员表现。
基于K-Means聚类算法对球员数据的聚类分析,可以自主寻找最优聚类数进行聚类
|
3月前
|
算法
【Azure Developer】完成算法第4版书中,第一节基础编码中的数组函数 histogrm()
【Azure Developer】完成算法第4版书中,第一节基础编码中的数组函数 histogrm()
|
4月前
创建KNN类
【7月更文挑战第22天】创建KNN类。
31 8
|
4月前
|
算法 数据库
|
5月前
|
数据采集 算法 安全
CVPR 2024:给NeRF开透视眼!稀疏视角下用X光进行三维重建,9类算法工具包全开源
【6月更文挑战第28天】CVPR 2024亮点:SAX-NeRF框架开源!融合X光与NeRF,提升3D重建效果。X3D数据集验证,Lineformer+MLG策略揭示物体内部结构,增强几何理解。虽有计算成本及泛化挑战,但为计算机视觉和医学影像开辟新路径。[论文链接](https://arxiv.org/abs/2311.10959)**
157 5
|
4月前
|
算法 Python
`scipy.optimize`模块提供了许多用于优化问题的函数和算法。这些算法可以用于找到函数的最小值、最大值、零点等。
`scipy.optimize`模块提供了许多用于优化问题的函数和算法。这些算法可以用于找到函数的最小值、最大值、零点等。
|
4月前
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹