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

Oracle PLM Agile936 单点登录配置方式 阅读详情

相关推荐

即梦文生视频逆向接口部署使用

有的小伙伴不知道这个地址如何填写,你可以理解是步骤3上提供的 服务器或者本地电脑IP 地址(不要写 http://127.0.0.1 或者http://localhsot ) 是 (192.168.XXX.XXX 参考)

weixin_44245188的博客 3185

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

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

Lion_Long的博客 1128

UE5垃圾回收优化实战:定位GC卡顿与内存泄漏

垃圾回收(GC)是Unreal Engine 5中保障UObject内存安全的核心机制,其基于引用图的标记-清除原理决定了性能高度依赖引用结构合理性。当GC频繁触发或单次耗时突增,往往映射出蓝图强引用冗余、C++根对象管理失控或资源生命周期设计缺陷等底层问题。技术价值在于降低主线程阻塞、稳定60帧体验、抑制内存异常增长;典型应用场景包括关卡切换卡顿、UI打开后持续GC、打包后内存不释放等。本文聚焦UE5特有的Full GC模式、UObject生命周期约束及GC触发时机不可见性,提供从蓝图变量规范、TSoft

weixin_31995251的博客 362

STL mismatch比较算法

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

JIWilliams 891

VS Code配置Java开发环境避坑指南:从JDK到Spring Boot插件全流程

本文详细介绍了在VS Code中配置Java开发环境的完整流程,涵盖JDK选择、环境变量配置、核心插件安装、构建工具优化及Spring Boot项目专项设置。特别针对常见问题提供避坑方案,帮助开发者快速搭建高效稳定的开发环境,提升Java和Spring Boot开发效率。

weixin_28839699的博客 979

告别‘小爱同学’:用ESP32-S3和esp-sr SDK,从零打造一个离线语音助手(含完整代码)

本文详细介绍了如何利用ESP32-S3芯片和esp-sr SDK从零构建一个离线语音助手,涵盖硬件选型、声学设计、SDK配置及低功耗优化等关键步骤。通过实战案例和完整代码,帮助开发者实现自定义唤醒词和命令词,打造低成本、高隐私的本地语音控制解决方案。

weixin_29041195的博客 371

stl非变易算法(二)

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

weixin_34124577的博客 98

Python时间序列:PaddleTS-时间序列分类

评估的指标采用F1,Precision,Recall,PaddleTS已经基于TSDataset实现了这三个指标的计算,直接调用即可。使用内置的API:get_dataset加载BasicMotions数据集。模型训练完成之后,可以对测试集进行预测并评估。模型保存之后,可以加载模型用于新的数据预测。可以将训练完成的模型保存到指定路径。概率预测 可以返回每个分类的概率。安装paddlets。

斌擎科技 1292

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

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

yangSHU21的博客 1043

Fiori Elements 表格之 Tree Tables:从数据建模到交互行为的全链路剖析

SAP Fiori elements的Tree Table组件将分层数据以表格形式展示,支持展开/折叠操作,适用于组织结构、物料清单等多级数据场景。该组件在List Report和Object Page中均可使用,支持懒加载、多选、列冻结等标准表格功能,并与OData V4服务层级注解深度集成。后端需通过RAP或CAP建模提供层级数据,前端通过清单配置切换表类型。需注意在草稿模式下仅显示活动实体,且展开状态在编辑时不保留。性能方面建议采用懒加载策略,避免全量加载树节点。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 159

YOLOv11-seg改进系列 | 引入CVPR2022 MetaFormer,零参数池化Token混合+StarReLU MLP,精度涨不掉速

本文提出了一种改进YOLOv11分割任务的C3k2_PoolingFormer模块,通过引入MetaFormer架构和Pooling Token Mixer,在保持模型轻量化的同时增强全局感受野建模能力。核心创新包括:1)使用零参数的AvgPool3×3差值作为Token Mixer,实现高效邻域信息聚合和局部对比增强;2)采用StarReLU MLP替代传统激活函数,提升非线性表达能力。改进后模型仅增加6.1%参数量,却能显著提升分割精度,特别适用于需要长程依赖建模的实例分割任务。该设计为轻量级视觉模型提

qq_44224801的博客 432

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

Qt —— QWebEngineView加载谷歌离线地图(包含离线地图瓦片下载制作、附谷歌地图开发文档)

  关注 微信公众号搜索"Qt_io_"或"Qt开发者中心"了解更多关于Qt、C++开发知识.。 笔者 - jxd

1万+

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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、付费专栏及课程。

余额充值