STL_mismatch ,equal 的用法

SXU 第八章 C++STL 非变异算法 8.3计数 8.4比较—附考点和相关习题及解答 C++STL 非变异算法 计数函数count() 比较函数equal() 变异算法copy函数 附考点和相关习题及解答《C++ STL基础及应用》刘德山、金百东编著; 阅读详情
//mismatch 和 equal 都是比较两个区间内的元素,各有三个参数first1,last1,first2, 
//对于【first1,last1)内所有位置first1+i,first1+i和first2+i所在位置处的元素相等 ,equal 返回true。

//pair 返回值是由first1 + i 和 first2 + i组成的一个pair,表示第一对不等元素的位置,如果没有找到不相等的元素,则返回last1 和 first2 + (last1 - first1)

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <list>
#include <deque>
#include <vector>
using namespace std;
int main()
{
  list <string>driver_list;
  vector <string>driver_vec;
  deque <string> deq;
  driver_list.insert(driver_list.end(),"zhao");
  driver_list.insert(driver_list.end(),"bb");
  driver_list.insert(driver_list.end(),"cc");
   driver_vec.insert(driver_vec.end(),"zhao");
  driver_vec.insert(driver_vec.end(),"bb");   
 driver_vec.insert(driver_vec.end(),"cc");        //当这行被注释掉后,也就是equal第三个参数first2中,数据个数比first1少,那么first2中对迭代器的引用会超出范围
   deq.insert(deq.end(),"zhao");                         //first1 的长度要《= fisrt2的长度
   deq.insert(deq.end(),"bbbbbb");

   if (equal(driver_list.begin(),driver_list.end(),driver_vec.begin()))
   {
	   printf("对于【first1,last1)内所有位置first1+i,first1+i和first2+i所在位置处的元素相等\n");
   }
   //mismatch 返回pair类型,他有两个数据成员,first,last,且它们的类型可以不同
   //所以可知  equal(first1,last1,first2) 和 mismatch(first1,last1,first2) .first ==  last1是等价的
   pair <deque <string> ::iterator,list<string>::iterator >pair1 = mismatch(deq.begin(),deq.end(),driver_list.begin());
  if(pair1.first != deq.end())
  {
	  cout <<*(pair1.first)<<"   and        "<<*(pair1.second)<<endl;
  }
  return 0;
}
mismatch 参数长度要求和equal一样,必须是后边参数长度长。。。


参考资料:http://www.2cto.com/kf/201110/107320.html

如何理解鲁棒性?为什么robustness会翻译为鲁棒性? 鲁棒性,英文为Robustness(承受故障和干扰的能力),是许多复杂系统(包括复杂网络)的关键属性。复杂网络的鲁棒性研究对许多领域都非常重要。本文着重介绍了鲁棒性的基本定义、命名起源、分类区别、提升方法和具体应用,供大家学习参考。 阅读详情

相关推荐

蠕虫病毒代码(纯属参考,请勿用于非法事件)

1.介绍蠕虫病毒 蠕虫病毒是一种常见的计算机病毒,是无须计算机使用者干预即可运行的独立程序,它通过不停的获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。 计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据和恶意篡改系统. 影响计算机使用并且能够自我复制的一组计算机指令或者程序代码 中文名:蠕虫病毒 传染方式:网络和电子邮件 外文名:Worm virus 类型:计算机病毒 2.代码(建议使用虚拟机,否则你的计算机将会就地报废,使用时要关闭电脑病毒保护,否则程序会...

Kenny20211105的博客 2万+

玩转STL的范围谓词:轻松应对复杂数据逻辑

本文介绍了如何使用STL的范围谓词来轻松应对复杂的数据逻辑。范围谓词是STL中强大而灵活的工具,可以帮助开发人员处理各种条件和筛选要素,以提高代码的可读性和性能。但它们有一个共同点:它们返回一个或多个范围的布尔特征。本文详细介绍了STL的范围谓词的应用和优势。范围谓词是处理复杂数据逻辑的有力工具,通过定义和使用谓词函数可以轻松地筛选和操作数据集合。结合STL的算法,范围谓词可以帮助编写简洁、高效的代码,提高开发效率和代码可读性。

Lion_Long的博客 1128

「模型部署系列」ubuntu 使用vllm部署Qwen3-8B模型

解决这个问题的方法正如错误信息中所提示的,需要在命令行中显式地设置。下载单个文件到指定本地文件夹(以下载README.md到当前路径下“dir”目录为例)解决:这表明你正在使用的 Tesla T4 GPU 的计算能力为 7.5,而。,用于获取更详细的 NCCL 调试信息,当所有其他问题排除,可尝试增加。1、下载vllm v0.8.5(此处已经下好了,去仓库拉资源)在下载前,请先通过如下命令安装ModelScope。,这一错误最终致使引擎进程启动失败。更多更丰富的命令行下载选项,可参见。

汪依帆的博客 5044

STL mismatch比较算法

equal() 算法可以告诉我们两个序列是否匹配。mismatch() 算法也可以告诉我们两个序列是否匹配,而且如果不匹配,它还能告诉我们不匹配的位置。 mismatch() 的 4 个版本和 equal() 一样有相同的参数——第二个序列有或没有结束迭代器,有或没有定义比较的额外的函数对象参数。mismatch() 返回的 pair 对象包含两个迭代器。它的 first 成员是一个来自前两个参...

JIWilliams 891

直流有刷电机三环PID控制:从硬件配置到软件调试全解析

本文全面解析了直流有刷电机的三环PID控制技术,涵盖从硬件选型(如驱动板、编码器)到STM32软件配置的全过程。详细阐述了位置环、速度环、电流环的串级协同工作原理与调试方法,并提供了位置式PID算法的C语言实现代码及参数整定技巧,旨在帮助开发者实现精准、稳定的电机运动控制。

weixin_29290963的博客 387

LabVIEW与MySQL实时数据存储:传感器采集与数据库同步实践

本文详细介绍了如何将LabVIEW与MySQL结合,实现传感器数据的实时采集与高效存储。通过设计合理的数据库表结构、配置LabVIEW数据库连接工具包,并编写核心的采集与存储VI,构建了稳定可靠的数据链路。文章重点分享了批量插入、连接管理、时间同步等关键优化技巧与避坑指南,帮助工程师应对工业监控、环境监测等场景下的实时数据同步挑战。

weixin_29281915的博客 262

stl非变易算法(二)

这里接着上篇stl非变易算法(一)进行总结。主要解析算法函数count、count_if、mismatch、equal、search、search_n以及find_end。给出算法函数的实现及測试用例。以下直接进入正题。 统计等于某值的容器元素个数count count函数用于计算容器中某个给定值的出现次数。计算迭代区间[first,last)上等于val值的元素个数r...

weixin_34124577的博客 98

PyTorch GPU版本安装避坑指南:解决RuntimeError: No CUDA GPUs are available报错

本文详细解析了PyTorch GPU版本安装过程中常见的`RuntimeError: No CUDA GPUs are available`报错问题,从硬件驱动检查、CUDA Toolkit与cuDNN安装到PyTorch GPU版本的正确配置,提供了全面的避坑指南和实战验证方法,帮助开发者高效搭建深度学习开发环境。

r2s3t4的博客 297

C++两个区间的比较?——STL之equal()算法和mismatch()算法

第一次调用mismatch()用以搜寻第一对互异的对应元素,如果找到了就把它们的值写到标准输出装置。第二次调用用来搜寻符合以下条件的第一对元素,“第一序列的元素比第二序列的对应元素大”,找到后返回这两个元素。下面用一个例子展示equal()算法两种形式的用法。

yangSHU21的博客 1043

反激系列-详细到每个容阻的原理之RCD吸收(1)

1、漏感尖峰电压会被RCD吸收,漏感能量一定,电容越大,电容充电的电压就越低,吸收能力就越强,MOS漏极的电压就越低。2、在漏感能力释放完之后(这个过程一般只有一个周期的3%时间),是要通过R1释放掉电容吸收的能量的,把电容的电压降下来方便下一次漏感尖峰来之前再进行吸收。3、电容容量和电阻需要合理搭配,容量足够即可,足够能吸收漏感尖峰电压,不至于超过MOS耐压。电阻需要足够小,小到在放电阶段把电容电压下降到MOS的电压平台。

Cuxiaoweiba的博客 3万+

电源完整性分析:PDN阻抗与去耦电容设计——目标阻抗计算与电容选型深度实战

摘要:随着嵌入式处理器主频突破 GHz、多核架构普及,电源完整性(Power Integrity, PI)已成为高速 PCB 设计中不可忽视的关键环节。本文从 PDN(电源分配网络)阻抗模型出发,系统讲解目标阻抗计算方法、去耦电容选型策略、反谐振抑制技术,并结合 STM32F4 核心板的完整设计实例,提供一套可落地的电源完整性工程实践方案。电源完整性设计是一项系统工程,需要从目标阻抗计算电容选型反谐振抑制PCB 布局目标阻抗是设计的起点,由电源电压、纹波要求和瞬态电流决定去耦电容。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

STL algorithm算法mismatch(37)

mismatch原型: std::mismatch equality (1) template &lt;class InputIterator1, class InputIterator2&gt; pair&lt;InputIterator1, InputIterator2&gt; mismatch (InputIterator1 firs...

weixin_34195546的博客 125

Codex CLI 手机号验证失败?5 种接码平台实测对比与绕过地区限制的 3 步操作

揭示 Codex CLI 手机号验证失败的真实原因在于上下文污染而非网络问题,分析其通过 ASN、Accept-Language 和 TLS SNI 三重加权风控的机制,并实测对比 5 种接码平台在 DNS 解析路径、ASN 干净度和复用间隔上的差异,提出剥离浏览器指纹、固化 TLS SNI、隔离

weixin_42627902的博客 731

C++ STL算法系列5---equal() , mismatch()

C++ STL算法系列5---equal() , mismatch()   equal和mismatch算法的功能是比较容器中的两个区间内的元素。这两个算法各有3个参数first1,last1和first2.如果对 于区间[first1,last1)内所有的first1+i,first1+i和first2所在位置处的元素都相等,则equal算法返回真,否则返 回假。mismatch算法的返

liushuiwen101423的专栏 460

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

STL之非修改性序列算法3

这里主要说明一下STL中用于比较的三个函数。 equal #include #include #include #include using namespace std; template void FillValue(T & vect ,int first ,int last) { for(int i = first ;i < last ;i++) {

Android移动开发者 910

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

for_each,count,mismatch等STL算法在VS2013下的实现以及辅助函数的源码解析

简要解析了几个STL算法在VS2013下的实现源码

x_ish的博客 957

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

STL学习笔记--非变易算法

非变易算法   C++ STL 的非变易算法(Non-mutating algorithm)是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。作为算法函数参数的迭代器,一般为 Input Iterator 输入迭代器,具有 "++" 迭代和 "*" 访问操作。通过迭代器的元素遍历,可对迭代器区间所界定的元素进行操作。因此,非变易算法具有极为广泛的适用性...

weixin_33932129的博客 146

STL源码剖析笔记 —— 第六章

将无效的迭代器传给某个算法,虽然是一种错误,却不能保证能够在编译时期就被捕获出来,因为所谓“迭代器类型”并不是真实的型别,它们只是function template的一种性别参数 对于所有的数值(numeric)算法,包括adjacent_difference(),accumulate(),inner_product(),partial_sum()等等,均需要包含头文件< numeric ...

pengfeisusjtu的博客 196

C++中的策略模式实战

重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。

2501_94015384的博客 357

C++代码库

此函数在由迭代器范围 定义的序列中,线性查找第一个与给定值 相等的元素。它的核心作用是在序列中进行值匹配,如果找到则返回指向该元素的迭代器,否则返回 迭代器。其时间复杂度为 O(n),常见于在数组或标准容器中定位特定元素。 std::find_if 此函数在迭代器范围 内,查找第一个使一元谓词 返回 的元素。它通过自定义条件进行搜索,提供了比 更灵活的匹配方式。函数同样进行线性查找,时间复杂度为 O(n),常用于根据复杂条件(如对象属性、数值范围)定位元素。 std::find_end 此

ailbj的博客 387

cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare

*cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare 区间:容器中的全部数据或者部分数据,都叫做区间 equal(b,e,b2),比较两个容器数据是不是相等 ,b(容器1,迭代器begin()),e(容器1,迭代器end(),b2(容器2,迭代器2指向的位置,begin2 if(equal(ivec.begin(),ivec...

Txwtech 491

<algorithm>文件中的mismatch、equal、is_permutation算法学习

学习文件中的mismatch、equal、is_permutation的功能和用法学之前需要搞懂前向迭代器含义:可反复读的单向链表指针 , 可以从头到尾遍历,也能复制迭代器,多个迭代器各自独立遍历同一序列,同一个元素可多次读取迭代器功能强弱:输入迭代器 -> 前向迭代器 -> 双向迭代器 -> 随机访问迭代器 -> 连续迭代器输入迭代器: 一次性只读数据,读一个少一个,不能重复读取,也不能复制数据(典型std::istream_iterator , ostream_iterator)

qq_36606147的博客 717
上一篇: @冯姐
下一篇: memset memcpy strcpy
i丹明扬
博客等级 码龄15年 331粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值