C++ Reference: Standard C++ Library reference: Containers: map: map: operators

news2024/11/25 10:58:33

C++官网参考链接:https://cplusplus.com/reference/map/map/operators/

函数
<map>
std::relational operators (map)
(1)    template <class Key, class T, class Compare, class Alloc>  
bool operator== ( const map<Key,T,Compare,Alloc>& lhs, const map<Key,T,Compare,Alloc>& rhs );
(2)    template <class Key, class T, class Compare, class Alloc>  
bool operator!= ( const map<Key,T,Compare,Alloc>& lhs, const map<Key,T,Compare,Alloc>& rhs );
(3)    template <class Key, class T, class Compare, class Alloc>  
bool operator<  ( const map<Key,T,Compare,Alloc>& lhs, const map<Key,T,Compare,Alloc>& rhs );
(4)    template <class Key, class T, class Compare, class Alloc>  
bool operator<= ( const map<Key,T,Compare,Alloc>& lhs, const map<Key,T,Compare,Alloc>& rhs );
(5)    template <class Key, class T, class Compare, class Alloc>  
bool operator>  ( const map<Key,T,Compare,Alloc>& lhs, const map<Key,T,Compare,Alloc>& rhs );
(6)    template <class Key, class T, class Compare, class Alloc>  
bool operator>= ( const map<Key,T,Compare,Alloc>& lhs, const map<Key,T,Compare,Alloc>& rhs );
map的关系操作符
在map容器lhs和rhs之间执行适当的比较操作。
相等比较(operator==)是通过第一次比较sizes来执行的,如果它们匹配,则使用operator==对元素进行顺序比较,在第一次不匹配时停止(就像使用equal算法一样)。
小于比较(operator<)的行为类似于使用算法lexicographical_compare,它以互反的方式使用operator<依次比较元素(即检查a<b和b<a)并在第一次出现时停止。
其他操作也在内部使用operator==和<来比较元素,就像执行了以下等价操作一样:

operationequivalent operation
a!=b!(a==b)
a>bb<a
a<=b!(b<a)
a>=b!(a<b)

注意,这些操作都没有考虑到容器的内部比较对象(internal comparison object),而是直接比较(类型为value_type的)元素。
value_type是一个pair类型,因此,默认情况下,只有当两个元素的键和映射值比较相等时,两个元素的比较才相等,只有当第一个键较小,或者键相等而映射值较小时,一个元素的比较才小于另一个元素。
这些操作符在头文件<map>中重载。

形参 
lhs,rhs
map容器(分别到操作符的左边和右边),具有相同的模板形参(Key、T、Compare和Alloc)。 

用例
// map comparisons
#include <iostream>
#include <map>

int main ()
{
  std::map<char,int> foo,bar;
  foo['a']=100;
  foo['b']=200;
  bar['a']=10;
  bar['z']=1000;

  // foo ({{a,100},{b,200}}) vs bar ({a,10},{z,1000}}):
  if (foo==bar) std::cout << "foo and bar are equal\n";
  if (foo!=bar) std::cout << "foo and bar are not equal\n";
  if (foo< bar) std::cout << "foo is less than bar\n";
  if (foo> bar) std::cout << "foo is greater than bar\n";
  if (foo<=bar) std::cout << "foo is less than or equal to bar\n";
  if (foo>=bar) std::cout << "foo is greater than or equal to bar\n";

  return 0;
}
输出:

返回值
如果条件成立,则为true,否则为false。

复杂度
C++98
最多达到lhs和rhs的size中的线性。 
C++14
对于(1)和(2),如果lhs和rhs的sizes不同,则为常量,否则最多达到size(相等比较)中的线性。
对于其他的,最多达到在较小的size(每一个表示两次使用operator<的比较)中的线性。

iterator的有效性
没有变化。

数据竞争
两个容器lhs和rhs都被访问。
最多它们所包含的所有元素都可以被访问。

异常安全
如果元素的类型支持带有无抛出保证的适当操作,则该函数永远不会抛出异常(无抛出保证)。
在任何情况下,函数都不能修改它的实参。

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

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

相关文章

记cf一些可能被hack的写法

1. unordered_map 现象 之前经常当O(1)用&#xff0c;作为一些卡常题的必备杀器&#xff0c; 而且&#xff0c;有的hdu/lc题不用umap的话&#xff0c;就只能手写哈希 但是&#xff0c;上次cf里写了个umap被卡了&#xff0c; 这才意识到之前看到的博客不是无稽之谈 其实我…

面试官:单体架构怎么向分布式微服务架构演变的?(8000字)

随着网站规模越来越大&#xff0c;单体应用往往很难再满足要求&#xff0c;就需要向分布式&#xff0c;微服务架构演变。 那么这个演变过程是怎么样的呢&#xff1f;都涉及到哪些组件&#xff0c;会遇到哪些问题&#xff0c;以及相应的解决方案都是什么&#xff0c;本篇文章就来…

吹爆,阿里MySQL优化笔记有多强?才在GitHub被BATJ联手封杀

公司来了个新同事&#xff0c;一看是个二本生&#xff0c;还是非科班出身&#xff0c;刚30岁。。。 结果没想到人家上来就把现有项目的性能优化了一遍&#xff0c;直接给公司节省了一半的成本&#xff0c;这种“王炸”打法&#xff0c;直接给所有人整懵了。 一问情况&#xff…

达梦:[-2420]:服务器未重启

在项目上&#xff0c;使用DMRMAN 备份数据库时&#xff0c;报[-2420]:服务器未重启的错。 因为是从实际生产的主备集群主节点拷贝的全备增备归档还原恢复到指定时间点还原恢复到指定时间点后&#xff0c;准备在测试环境搭建集群。 测试环境的主节点&#xff0c;还原恢复后&…

[附源码]Python计算机毕业设计高校勤工助学管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

Word控件Spire.Doc 【超链接】教程(6):在C#去除word文档中的超链接

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

Jina AI创始人肖涵博士分享软件框架开发的3个常见错误及解决方法

回到三个月前一个晨跑的上午&#xff0c;你突然萌生了一个绝妙的想法在&#xff1a;“我要建立一个 AI 框架&#xff01;”你的大脑飞速运转&#xff0c;你的指尖在键盘上飞速敲打&#xff0c;快速地记下此刻的想法和灵感。你梦想着潜在的投资者&#xff0c;全新的应用程序&…

安卓玩机搞机技巧综合资源-----安卓机型固件中分区对应说明【十九】

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红…

【Python爬虫+数据分析实战】Python采集北上广深天气数据,制作可视化动图—“天冷了就该钻被窝早睡觉啦~”

前言 哈喽哈喽&#xff01;我是栗子&#xff0c; 这几天冷吗&#xff1f;温差大吗&#xff1f;风大吗&#xff1f;瑟瑟发抖中。 别急&#xff01;下周起&#xff0c;小伙伴们直接冻傻&#xff0c;不信你看&#x1f4a8;&#x1f4a8;反正就是这个点基本上全国都降&#xff01…

pytorch实现猴痘病识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章地址&#xff1a; 365天深度学习训练营-第P4周&#xff1a;猴痘病识别&#x1f356; 作者&#xff1a;K同学啊一、前期准备 1.设置GPU import torch from torch import nn impo…

【java】java JSR 269 简介

1.概述 看这篇文章先看实战:【java】java JSR 269 自定义注解实战 Lombok @Data注解 先看实战在看原理,比较容易理解。 注解( Annotation)第- -次是在JDK1.5中被引入进来的,当时开发者只能在运行期处理注解。JDK1.6引人了JSR269规范,允许开发者在编译期间对注解进行处理,…

云原生 | Kubernetes - 调度框架

目录 调度器 调度概览 kube-scheduler kube-scheduler 调度流程 调度框架 框架工作流程 调度周期和绑定周期 扩展点 队列排序 PreFilter Filter PostFilter PreScore Score NormalizeScore Reserve Permit PreBind Bind PostBind Unreserve 插件 API 插…

美皓医疗港交所上市破发:首日跌14% 公司市值4亿港元

雷递网 雷建平 12月14日美皓医疗集团有限公司&#xff08;简称&#xff1a;“美皓医疗”&#xff0c;股票代码为&#xff1a;“01947”&#xff09;今日在港交所上市&#xff0c;发行价为0.84港元&#xff0c;位于发行区间最低端位置。美皓医疗此次募资净额为7490万港元。这之前…

53、多用户通信项目

只讲解最核心的代码部分&#xff0c;界面部分省略 一、基础知识 项目开发流程&#xff1a; 需求分析——》设计阶段——》编码实现——》测试阶段——》实施阶段 二、需求分析 1、用户登录 2、拉取在线用户列表 3、无异常退出&#xff08;客户端、服务端&#xff09; 4、私…

商城系统功能业务逻辑架构_功能描述_OctShop

随着移动电商&#xff0c;社区电商的迅猛发蔚县&#xff0c;网上购物系统已成为了企业或商家销售商品的重要渠道和方式。网上购物系统让人们的购物简单、方便、快捷。实现了消费者足不出户就可以购买到自己需要的商品。而网上购物系统是专门帮助企业商家快速打造自己的用户群体…

如何编写安装openjdk15的dockerfile

方法一 从官方网站下载 openjdk 15 tar 文件&#xff0c;解压文件&#xff0c;删除下载的 tar 文件并将路径设置为 java 二进制文件。 创建一个 Dockerfile 并复制以下内容 FROM centos:8ENV PATH$PATH:/opt/java/jdk-15.0.2/binWORKDIR /opt/javaRUN curl https://downloa…

2023年深圳/汕头/揭阳/中山/惠州数据分析CPDA认证招生简章

CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证&#xff0c;它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者&#xff0c;具有广泛的社会认知度和权威性。 无论是地方政府引进人才、公务员报考、各大企业选聘人才&#xff0c;还是招投标加…

科研在线实用工具(文献,编程,文档,格式转换,OCR、数据分析可视化,图片、视频动画处理,设计,简历)

SCI&#xff1a; Sci-Hub: 将知识带给每个人Sci-Hub网站。免费获取学术期刊。免费下载来自ScienceDirect、IEEE、Wiley、Springer、Nature及其他的研究论文。https://sci-hub.se/在线编程&#xff1a; Anycodes 在线编程 - 可以随时随地进行编程学习和代码练习的在线编程平台 …

JMeter 扩展开发:自定义 JMeter 插件的调试

前言 在本系列专题之前的文章中&#xff0c;我们已经介绍了 JMeter 扩展开发的一些方法。但是在开发过程中还有一个需要处理的环节&#xff0c;是对编写的代码进行调试。一种方式是将开发的扩展与 JMeter 源码放在一起进行调试。但是这种方法的缺点是需要将整个 JMeter 的源码…

卫龙明日上市:募资净额9亿港元 腾讯云锋红杉高瓴或浮亏

雷递网 雷建平 12月14日卫龙食品&#xff08;股票代码为&#xff1a;“09985”&#xff09;将于明日在港交所上市&#xff0c;发行价为10.56港元&#xff0c;位于发行区间10.4到11.4港元的下端位置。卫龙食品此次募资净额为8.99亿港元&#xff1b;若行使超配权&#xff0c;则可…