关系类算法函数

简介: 关系类算法函数

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;


相关文章
|
4天前
|
数据采集 算法 安全
CVPR 2024:给NeRF开透视眼!稀疏视角下用X光进行三维重建,9类算法工具包全开源
【6月更文挑战第28天】CVPR 2024亮点:SAX-NeRF框架开源!融合X光与NeRF,提升3D重建效果。X3D数据集验证,Lineformer+MLG策略揭示物体内部结构,增强几何理解。虽有计算成本及泛化挑战,但为计算机视觉和医学影像开辟新路径。[论文链接](https://arxiv.org/abs/2311.10959)**
19 5
|
5天前
|
算法 vr&ar
技术好文共享:遗传算法解决函数优化
技术好文共享:遗传算法解决函数优化
|
11天前
|
算法 C语言 Python
简单遗传算法优化简单一元函数(python)
简单遗传算法优化简单一元函数(python)
12 0
|
13天前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】近邻类模型:KNN算法在数据科学中的实践与探索
【机器学习】近邻类模型:KNN算法在数据科学中的实践与探索
35 0
|
13天前
|
算法 Java C语言
Java中的算法与C语言中的函数
Java中的算法与C语言中的函数
11 2
|
14天前
|
算法 调度 C++
【调度算法】共享函数vs拥挤距离
【调度算法】共享函数vs拥挤距离
21 1
|
26天前
|
算法
数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)
数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)
11 0
|
26天前
|
存储 算法
数据结构和算法学习记录——特殊线性表之队列-队列的概念、队列结构体类型定义 、基本接口函数、初始化函数、销毁队列函数、入队列函数、判断队列是否为空、出队列函数、读取队头队尾的数据 、计算队列数据个数
数据结构和算法学习记录——特殊线性表之队列-队列的概念、队列结构体类型定义 、基本接口函数、初始化函数、销毁队列函数、入队列函数、判断队列是否为空、出队列函数、读取队头队尾的数据 、计算队列数据个数
16 0
|
26天前
|
算法 C语言
数据结构和算法学习记录——特殊线性表之栈(下)-销毁栈函数、判断栈是否为空、压栈函数、出栈函数、取栈顶元素、计算栈中有多少个元素、栈有关习题-有效的括号
数据结构和算法学习记录——特殊线性表之栈(下)-销毁栈函数、判断栈是否为空、压栈函数、出栈函数、取栈顶元素、计算栈中有多少个元素、栈有关习题-有效的括号
14 0
|
26天前
|
算法
数据结构和算法学习记录——特殊线性表之栈(上)-栈的概念、栈的结构、链式栈数组栈、栈的结构体定义、栈的基本接口函数、栈顶初始化函数
数据结构和算法学习记录——特殊线性表之栈(上)-栈的概念、栈的结构、链式栈数组栈、栈的结构体定义、栈的基本接口函数、栈顶初始化函数
10 0