常用算法--C++

文章目录

  • 一、谓词
  • 二、标准算法`algorithm`
    • 1、`sort` 排序算法
      • 第一种sort重载
      • 第二种sort重载
    • 2、`find_if` 查找算法



一、谓词

概念:
●返回bool类型的仿函数称为谓词

●如果operator()接受一个参数,那么叫做一元谓词

_InIt find_if(_InIt _First, const _InIt _Last, _Pr _Pred)
_InIt _First:为要查找区间的初始位置。const _InIt _Last:为要查找区间的结束位置。_Pr _Pred:为一元谓词,也称仿函数。

●如果operator()接受两个参数,那么叫做二元谓词

例如void sort(const _RanIt _First, const _RanIt _Last, _Pr _Pred)最后
_Pr _Pred 为二元谓词,需要两个参数比较大小



二、标准算法algorithm


1、sort 排序算法

函数原型分为两种

第一种sort重载

void sort(const _RanIt _First, const _RanIt _Last)

两个参数为要排序的区间

第二种sort重载

void sort(const _RanIt _First, const _RanIt _Last, _Pr _Pred)

最后 _Pr _Pred 为谓词,也是仿函数

class compare
{
public:bool operator()(int v1, int v2){return v1 > v2;}
};void test01()
{vector<int> v;v.push_back(20);v.push_back(10);v.push_back(50);v.push_back(23);v.push_back(40);v.push_back(18);cout << "------- 排序前 -------" << endl;printVector(v);//遍历容器sort(v.begin(), v.end(), compare());cout << "------- 排序后 -------" << endl;printVector(v);//遍历容器
}

2、find_if 查找算法

函数原型

_InIt find_if(_InIt _First, const _InIt _Last, _Pr _Pred)

_InIt _First:为要查找区间的初始位置。const _InIt _Last:为要查找区间的结束位置。_Pr _Pred:为一元谓词,也称仿函数。

class Find
{
public:bool operator()(int val){return val == 5;}
};void test02()
{vector<int> v;v.push_back(20);v.push_back(10);v.push_back(50);v.push_back(23);v.push_back(5);v.push_back(18);vector<int>::iterator it = find_if(v.begin(), v.end(), Find());if (it != v.end()){cout << "查找成功" << " " << *it << endl;}else{cout << "查找失败" << endl;}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/671467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第8节、双电机多段直线运动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;前面章节主要介绍了bresenham直线插值运动&#xff0c;本节内容介绍让两个电机完成连续的直线运动,目标是画一个正五角星 一、五角星图介绍 五角星总共10条直线&#xff0c;10个顶点。设定左下角为原点…

入侵报警系统行业研究:智能化潮流助力市场维持正增长

侵报警系统intruder alarm system(IAS)利用传感器技术和电子信息技术探测并指示非法进入或试图非法进入设防区域(包括主观判断面临被劫持或遭抢劫或其他危急情况时&#xff0c;故意触发紧急报警装置)的行为&#xff0c;处理报警信息、发出报警信息的电子系统或网络。 当入侵行为…

解析与模拟常用字符串函数strcpy,strcat,strcmp,strstr(一)

今天也是去学习了一波字符串函数&#xff0c;想着也为了加深记忆&#xff0c;所以写一下这篇博客。既帮助了我也帮助了想学习字符串函数的各位。下面就开始今天的字符串函数的学习吧。 目录 strcpy与strncpy strcat与strncat strcmpy strstr strcpy与strncpy 在 C 语言中&…

docker进阶问题一

一、如何使用Docker的容器多阶段构建功能&#xff1f; Docker的多阶段构建&#xff08;Multi-stage Build&#xff09;功能允许在一个Dockerfile中使用多个FROM指令&#xff0c;每个FROM指令都可以使用不同的基础镜像&#xff0c;并且可以选择性地将前面阶段的文件复制到后续阶…

哪些洗地机比较好?家用洗地机选购攻略

洗地机集合了拖把跟吸尘器的功能&#xff0c;面对地面上的水渍、油污脏东西可以快速的清洁干净。从去年开始洗地机领域的竞争就变得异常激烈。各大厂家纷纷推出各自的主打型号&#xff0c;有的注重续航&#xff0c;有的突出清洁效能&#xff0c;还有的专注于性价比。相较于前几…

谷歌seo搜索引擎优化教程有吗?

教程&#xff0c;教学&#xff0c;指南&#xff0c;这些东西哪里都有&#xff0c;尤其是关于seo相关方面的&#xff0c;这些可以说到处都是&#xff0c;能把谷歌seo这个关键词做上去的&#xff0c;可以说就是实力的证明了&#xff0c;在这里我们说一个无论是老手还是新手都应该…

window开机启动

Windows设置exe或者bat文件开机启动的几种方法汇总_开机启动bat-CSDN博客 这个写的不错&#xff01;好几种方法&#xff01;

【知识图谱+大模型的紧耦合新范式】Think-on-Graph:解决大模型在医疗、法律、金融等垂直领域的幻觉

Think-on-Graph&#xff1a;解决大模型在医疗、法律、金融等垂直领域的幻觉 Think-on-Graph 原理ToG 算法步骤&#xff1a;想想再查&#xff0c;查查再想实验结果 论文&#xff1a;https://arxiv.org/abs/2307.07697 代码&#xff1a;https://github.com/IDEA-FinAI/ToG Think…

算法刷题day06

目录 引言一、移动距离二、日期问题三、航班时间四、外卖店优先级五、逆序对的数量六、总结 引言 今天是刷题的第六天的看看之前刷过的题基本快刷的差不多了&#xff0c;然后就开始刷一写新的题了。今天搞得是模拟和枚举和归并排序&#xff0c;关于这个归并排序我才感受到&…

PYthon进阶--网页采集器(基于百度搜索的Python3爬虫程序)

简介&#xff1a;基于百度搜索引擎的PYthon3爬虫程序的网页采集器&#xff0c;小白和爬虫学习者都可以学会。运行爬虫程序&#xff0c;输入关键词&#xff0c;即可将所搜出来的网页内容保存在本地。 知识点&#xff1a;requests模块的get方法 一、此处需要安装第三方库reques…

dump分析方法

一、关于dump 1、什么是dump 在计算机领域中&#xff0c;术语“dump”通常用来指代将某种数据以某种格式进行转储或导出的过程。这个术语可以用于多种不同的上下文&#xff0c;下面是一些常见的情况&#xff1a; 内存转储&#xff08;Memory Dump&#xff09;&#xff1a;在…

网络空间内生安全数学基础(2)——编码信道数学模型

目录 &#xff08;零&#xff09;这篇博客在干什么&#xff08;一&#xff09;内生安全与香农信道编码定理&#xff08;二&#xff09;基本定义&#xff08;三&#xff09;编码信道存在定理&#xff08;三.壹&#xff09;编码信道存在第一定理&#xff08;三.贰&#xff09;编码…

Micro micro controller一览

https://www.microchip.com.cn/&#xff0c; Microchip中文网站 https://www.microchip.com.cn/newcommunity/index.php?mSearch&adosearch&moduleDownload&keyworddsPIC33&p3 Microcontrollers and microProcessors dsPIC33 Digital Signal Controllers (D…

Leetcode第123场双周赛

Leetcode第123场双周赛 本人水平有限&#xff0c;只做前三道 一、三角形类型 给你一个下标从 0 开始长度为 3 的整数数组 nums &#xff0c;需要用它们来构造三角形。 如果一个三角形的所有边长度相等&#xff0c;那么这个三角形称为 equilateral 。 如果一个三角形恰好有两…

大学生创新实践:班级管理系统全解析

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

Redis(十三)缓存双写一致性策略

文章目录 概述示例 缓存双写一致性缓存按照操作来分&#xff0c;细分2种读写缓存&#xff1a;同步直写策略读写缓存&#xff1a;异步缓写策略双检加锁策略 数据库和缓存一致性更新策略先更新数据库&#xff0c;再更新缓存先更新缓存&#xff0c;再更新数据库先删除缓存&#xf…

不懂快团团大团长对接?凭什么快团团的钱轮到你赚?

对接头部快团团大团长&#xff0c;让快团团大团长帮你卖货 分享几个推品的关键词&#xff1a; 1.推品的内容&#xff1a;产品实拍图核心卖点 不要上来就发笔记&#xff0c;你的产品图和文案还没吸引人&#xff0c;就发笔记没有人看。 可以先发你产品的简短卖点和图片&#xff…

ionic报错:Cannot read properties of undefined (reading ‘classList‘)

报错信息&#xff1a; [ionic/vue Warning]: The view you are trying to render for path /tabs/tab1 does not have the required <ion-page> component. Transitions and lifecycle methods may not work as expected.See https://ionicframework.com/docs/vue/navig…

#Z1656. 树上觅食

Description 小J是一只猴子&#xff0c;住在树上&#xff0c;树上每个点都有一些果子 小J每天要固定吃掉S个果子 小J还要多在树上运动一下&#xff0c;于是他想知道这个树上有多少路径&#xff0c;路径上点的果子的总和正好为S 并且路径上的点的深度是连续增加的 Format …

Go语言每日一练链表篇(一)

题目传送门 牛客面试必刷101题 ----------反转链表 题目以及答案源码 反转链表 题目 解题方法 递归函数遍历链表并反转 package main import _"fmt" import . "nc_tools" /** type ListNode struct{* Val int* Next *ListNode* }*//*** 代码中的…