STL之mismatch

2023-11-06

/*
判断两个区间的第一个不匹配点,返回一个由两个迭代器组成的pair,
其中第一个迭代器指向第一个区间的不匹配点,第二个迭代器指向第二个区间的不匹配点
如果都匹配,返回的是指向两个区间的last迭代器。

quality (1)	:采用默认operator==比较
	template <class InputIterator1, class InputIterator2>
	pair<InputIterator1, InputIterator2>
    mismatch (InputIterator1 first1, InputIterator1 last1,
              InputIterator2 first2);
predicate (2):指定比较规则pred
	template <class InputIterator1, class InputIterator2, class BinaryPredicate>
	pair<InputIterator1, InputIterator2>
    mismatch (InputIterator1 first1, InputIterator1 last1,
              InputIterator2 first2, BinaryPredicate pred);
*/
//版本一:采用默认比较规则operator==
template <class _InputIter1, class _InputIter2>
pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1,
                                        _InputIter1 __last1,
                                        _InputIter2 __first2) {
  __STL_REQUIRES(_InputIter1, _InputIterator);
  __STL_REQUIRES(_InputIter2, _InputIterator);
  __STL_REQUIRES(typename iterator_traits<_InputIter1>::value_type,
                 _EqualityComparable);
  __STL_REQUIRES(typename iterator_traits<_InputIter2>::value_type,
                 _EqualityComparable);
  //遍历区间,寻找不匹配点
  //注意:第一个区间的元素不能比第二个区间元素多
  while (__first1 != __last1 && *__first1 == *__first2) {
    ++__first1;
    ++__first2;
  }
  return pair<_InputIter1, _InputIter2>(__first1, __first2);
}
//版本二:自定义比较规则
template <class _InputIter1, class _InputIter2, class _BinaryPredicate>
pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1,
                                        _InputIter1 __last1,
                                        _InputIter2 __first2,
                                        _BinaryPredicate __binary_pred) {
  __STL_REQUIRES(_InputIter1, _InputIterator);
  __STL_REQUIRES(_InputIter2, _InputIterator);
  //遍历区间,寻找不匹配点
  while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) {
    ++__first1;
    ++__first2;
  }
  return pair<_InputIter1, _InputIter2>(__first1, __first2);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STL之mismatch 的相关文章

随机推荐

  • kubernetes Deployment 详解 更新/回滚/缩放/暂停/恢复部署操作

    涉及文档 Deployments 官方文档 Deployments 简介 一个 Deployment 为 Pods 和 ReplicaSets 提供声明式的更新能力 你负责描述 Deployment 中的 目标状态 而 Deployment
  • SpringToolSuite4中集成maven

    目录 一 什么是Maven 二 Maven的使用 一 什么是Maven Maven是基于项目对象模型 POM project object model 可以通过一小段描述信息 配置 来管理项目的构建 报告和文档的软件项目管理工具 Maven
  • ImportError lib64 libstdc++.so.6 version CXXABI 1.3.9 not found required by home anaconda

    文章目录 1 现象 2 解决方案 3 参考 1 现象 ImportError lib64 libstdc so 6 version CXXABI 1 3 9 not found required by home qtxu anaconda3
  • YOLOX的解耦头结构思考

    问题 YOLOX提出了一个Decoupled Head结构以代替YOLO Head 进而在YOLOv3 baseline的基础上提升了1 1个百分点的mAP 那为什么解耦头结构就能够提升检测效果呢 调研 我主要在YOLOX原论文讲述Deco
  • Git创建、连接远程仓库命令

    目录 Git定义 作用 概念 配置 操作 全局配置 创建 添加到暂存盘 从暂存盘撤回 提交到版本库 从版本库切换版本库 查看记录 分支 标签 下载远程仓库 远程仓库 github 远程仓库 本地 本地推送到服务器 1 需要 2 成功 远程网
  • ggplot2入门大全(从菜鸟到高手)

    在开始ggplot2的学习之前 可以先看下我之前的一篇博客 关于快速作图 qplot 在本章你将学习 1 ggplot2中的mpg数据集 2 ggplot2图像的三个基本构成 数据 图形属性和几何对象 3 如何将变量映射到图形属性中 4 如
  • ExcelUtil对easyexcel2.X进行封装,实现一个方法完成简单的excel导入和导出。

    easyexcel basic demo ExcelUtil对easyexcel2 X进行封装 实现一个方法完成简单的excel导入和导出 使用介绍 一 背景 主流office文档操作组件性能比较 组件 功能简介 使用场景 测试环境 内存消
  • Python+Requests+Ddt+Execl接口测试框架整理之04(HTTP Requests请求方法封装)

    个人觉得最难的应该就是这里 我封装过来封装过去始终各种格式的请求都要出问题 总有正确的也有错误的 后来各种搜资料 然后看Requests模块中关于请求方法的源代码描述 才有了似懂非懂的感觉 单独写一个接口一个接口的请求很简单就没有错 但是封
  • b 站视频下载神器合集,支持电脑和手机端

    苏生不惑第289 篇原创文章 将本公众号设为星标 第一时间看最新文章 之前分享过很多篇关于b站的文章 号称 b 站最强脚本 每天定时签到腾讯 爱奇艺 网易云音乐 b站 a站 百度贴吧 天翼云盘等网站 又一视频下载神器 批量下载腾讯 优酷 爱
  • watson studio_认可Watson认知服务

    watson studio Over the last weeks I had to pleasure to investigate most of the Watson services on Bluemix Below is a ser
  • java实现ssh连接服务器

    目录 一 引入依赖 二 工具类 1 SSHExecutor类 2 SSHUtil类 三 使用方法 一 引入依赖
  • 清华大模型人才遭哄抢!盘点5大学术重镇10大产业玩家

    衡宇 发自 凹非寺量子位 公众号 QbitAI 做类ChatGPT产品 组中国版OpenaAI恐怕是先当下最最人尽皆知的创投野心 有人官宣标榜放话 也有VC开始把视角投向产学研转换的大模型项目 或许能更有基础一些 其中 清华大学显然处于身负
  • 刷题之合并二叉树

    给定两个二叉树 想象当你将它们中的一个覆盖到另一个上时 两个二叉树的一些节点便会重叠 你需要将他们合并为一个新的二叉树 合并的规则是如果两个节点重叠 那么将他们的值相加作为节点合并后的新值 否则不为 NULL 的节点将直接作为新二叉树的节点
  • sedona error : java.lang.NoClassDefFoundError: org/opengis/referencing/FactoryException

    具体原因不详 但笔者增加了一个依赖解决了
  • Python 2.7 requests库POST请求体中有中文的处理方法

    Python 2 7 requests库发送POST请求 请求体是JSON格式 JSON字符串中包含中文 可以如此处理 Python 2 7 默认的源码文件编码是 ASCIl 如果你想在源代码中使用非 ASCII 字符 比如中文 你需要在文
  • 怎样更改Jupyter NoteBook默认的工作空间

    1 首先打开命令窗口 输入 jupyter notebook generate config 2 根据上面得到的路径 找到jupyter notebook config py这个配置文件 3 用记事本打开 查找directory 4 把前面
  • 内容安全综合实践-数字水印

    DCT实现数字水印功能模块 1 整体效果 功能 添加和提取字符水印 添加和提取图片水印 整体效果 2 数字水印的基本特点 1 不可见性 在宿主数字媒体中嵌入一定数量的附加信息后 不能引起明显的将质现象 隐藏的数据不易觉察 即无法人为的看见或
  • Java中的关键字

    Abstract 表明类或者成员方法具有抽象属性 Assert 用来进行程序调试 Boolean 基本数据类型之一 布尔类型 Break 提前跳出一个块 Byte 基本数据类型之一 字节类型 Case 用在switch语句之中 表示其中的一
  • 蓝桥杯算法模板

    模拟散列表 单链表 import java io import java util Scanner public class dlb private static int N 100010 private static int head p
  • STL之mismatch

    判断两个区间的第一个不匹配点 返回一个由两个迭代器组成的pair 其中第一个迭代器指向第一个区间的不匹配点 第二个迭代器指向第二个区间的不匹配点 如果都匹配 返回的是指向两个区间的last迭代器 quality 1 采用默认operator