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

news2025/1/23 10:23:13

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

公有成员函数
<map>
std::map::value_comp
value_compare value_comp() const;
返回值比较对象
返回一个比较对象,该对象可用于比较两个元素,以获得第一个元素的键是否在第二个元素之前。
此函数对象所接受的实参的成员类型为value_type(在map中定义为pair<const key_type,mapped_type>的别名),但是在此比较中不考虑值的mapped_type部分。
返回的比较对象是一个成员类型map::value_compare的对象,它是一个嵌套类,使用内部比较对象(comparison object)生成适当的比较函数类。它的定义与以下行为相同:
template <class Key, class T, class Compare, class Alloc>
class map<Key,T,Compare,Alloc>::value_compare
{   // in C++98, it is required to inherit binary_function<value_type,value_type,bool>
  friend class map;
protected:
  Compare comp;
  value_compare (Compare c) : comp(c) {}  // constructed with map's comparison object
public:
  typedef bool result_type;
  typedef value_type first_argument_type;
  typedef value_type second_argument_type;
  bool operator() (const value_type& x, const value_type& y) const
  {
    return comp(x.first, y.first);
  }
}
如果第一个实参的键被认为在第二个实参的键之前(根据容器的比较对象(comparison object)key_comp指定的严格弱排序),则该比较类的public成员返回true,否则返回false。
注意,value_compare没有public构造函数,因此不能直接从这个嵌套类在map成员之外创建对象。

形参 
没有形参。 

返回值
元素值的比较对象。
成员类型value_compare是一个嵌套类类型(如上所述)。

用例
// map::value_comp
#include <iostream>
#include <map>

int main ()
{
  std::map<char,int> mymap;

  mymap['x']=1001;
  mymap['y']=2002;
  mymap['z']=3003;

  std::cout << "mymap contains:\n";

  std::pair<char,int> highest = *mymap.rbegin();          // last element

  std::map<char,int>::iterator it = mymap.begin();
  do {
    std::cout << it->first << " => " << it->second << '\n';
  } while ( mymap.value_comp()(*it++, highest) );

  return 0;
}
输出:

复杂度
常量。

iterator的有效性
没有变化。

数据竞争
访问容器。
不访问包含的元素:同时访问或修改它们是安全的。

异常安全
强保证:如果抛出异常,则容器中不会有任何更改。 

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

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

相关文章

Python 基础| Python 直接赋值、深拷贝和浅拷贝

先看这三个词的意思我觉得菜鸟的总结就很好 Python 直接赋值、浅拷贝和深度拷贝 | 菜鸟教程 直接赋值&#xff1a;其实就是对象的引用&#xff08;别名&#xff09;。 浅拷贝(copy)&#xff1a;拷贝父对象&#xff0c;不会拷贝对象的内部的子对象。 深拷贝(deepcopy)&#xf…

采购过程中会遇到的四种风险!如何管理和控制?

采购风险通常是指采购过程可能出现的一些意外情况&#xff0c;这些情况都会影响采购预期目标的实现。采购风险通常是由管理不善引起的&#xff0c;本文解释了采购过程中会遇到的四种风险&#xff0c;并介绍通过正确实施8Manage SRM采购管理系统&#xff0c;可以有效管理和控制它…

说说Python程序的执行过程

1. Python是一门解释型语言&#xff1f; 我初学Python时&#xff0c;听到的关于Python的第一句话就是&#xff0c;Python是一门解释性语言&#xff0c;我就这样一直相信下去&#xff0c;直到发现了*.pyc文件的存在。如果是解释型语言&#xff0c;那么生成的*.pyc文件是什么呢&…

工程项目管理的特点

工程项目管理是一种只关注工程项目的项目管理。它使用与任何其他类型的项目管理相同的标准方法和流程。这种专业化可能会吸引任何想要进入项目管理领域的具有工程背景的人。 工程项目管理与工程管理 工程管理侧重于对具有以下特点的工程师和工程任务的管理&#xff1a; 1、…

java UDP通信程序DatagramSocket数据接收

在查看本文前 您可以先看看我的文章 java UDP通信程序DatagramSocket数据发送 对UDP有一个基本的了解 然后这里我们就直接看代码了 我们先创建一个包 包下创建两个类 分别是 sendOut 发送类 参考代码如下 import java.io.IOException; import java.net.DatagramPacket; impo…

【Flutter 笔记系列 第 3 篇】如何正确对待Name source files using `lowercase with underscores`

相信很多安装了一些提示插件的小伙伴都遇见过 Name source files using lowercase with underscores flutter 提示 如下图 此时会有两种选择 1.能跑就行&#xff0c;无视它 2.好烦&#xff0c;我也没干什么怎么就提示不规范了。 3.一定是哪里出了问题&#xff0c;我要找到…

高通Ride软件开发包使用指南(8)

高通Ride软件开发包使用指南&#xff08;8&#xff09;6.9跟踪6.10 基础感知延迟分析6.10.1生成CSV6.9跟踪 用户可以使用Google Chrome中的跟踪功能分析代码的执行浏览器以下步骤中的示例显示如何分析Foundation SDK相机知觉 必须启用相关日志条目&#xff0c;因为跟踪使用SD…

说说Spring事件发布机制

文章目录前言一、 使用到事件发布机制的源码二、Springboot启动过程中用到的部分事件三、Springboot中的监听器四、自定义事件源&#xff0c;事件监听器和事件发布器4.1 目录结构4.2 事件源4.3 事件监听器4.4 事件帮助器4.4.1 事件发布帮助接口4.4.2 事件发布帮助接口实现类4.4…

运维就业现状怎么样?技能要求高吗?

运维至少需要知道哪些知识才可以去面试&#xff1f; 有一个答案对这一话题的解读非常深入&#xff0c;体系化的分析了所需掌握的技术、工作内容、性质及可发展的方向等等&#xff0c;今天特别分享给大家&#xff0c;按照这个发展&#xff0c;运维则已不需担心就业、薪酬等问题了…

MySQL -2 指令

客户端SQL指令记录&#xff1a; -- 针对 数据库和针对数据表 &#xff08;一&#xff09;数据库 1. 查看当前所有数据库&#xff1a;show databases; 2. 创建数据库&#xff1a;create database 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 3. 删除数据库&#…

【一建、一造经验分享】一建挺难的,要坚持才能得到

标签&#xff1a;【备考四年】、【2020全科通过一建】、【2021全科通过一造】 思绪回到2017年7月份&#xff0c;软考-项目管理师出成绩了&#xff0c;很幸运我通过了。由于通信行业及单位认可“以考代评”&#xff0c;所以我最先下手的是软考高级&#xff0c;拿证等同于高工。在…

程序员核心------详解调试(2)

所爱隔山海&#xff0c;山海皆可平&#xff0c;所念皆星河&#xff0c;星河不可及。 上课&#xff01; 接着上节课讲的调试&#xff08;1&#xff09;&#xff0c;本节课进一步讲解调试(2). 文章目录1.调试实例讲解&#xff08;2&#xff09;校招笔试题 2.如何写出好的&#…

【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)

MapReduce是Hadoop系统核心组件之一&#xff0c;它是一种可用于大数据并行处理的计算模型、框架和平台&#xff0c;主要解决海量数据的计算&#xff0c;是目前分布式计算模型中应用较为广泛的一种。 一、MapReduce核心思想 MapReduce的核心思想是“分而治之”。所谓“分而治之…

猿人学APP第一题

抓包分析 copy CURL 转 requests代码 def app1():import requestsheaders {"Accept-Language": "zh-CN,zh;q0.8","User-Agent": "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; Nexus 6P Build/OPM1.171019.011) AppleWebKit/534.30 (K…

KT6368A蓝牙芯片的MTU的说明以及如何加快BLE传输速率

目录 一、蓝牙MTU的简介 二、详细的方法说明以及测试 三、KT6368A提升ble传输速率方法 BLE传输带宽主要跟两个要素有关&#xff1a; 通信周期和每个通信点可传输的数据量。 1.通信周期&#xff1a; 安卓手机一般可支持到10ms&#xff0c;苹果一般可支持到15ms 2.每个通信点…

[附源码]Node.js计算机毕业设计高校实习管理平台系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

菁染料CY3-聚乙二醇-二苯并环辛炔 CY3-PEG-DBCO

产品名称&#xff1a;菁染料CY3-聚乙二醇-二苯并环辛炔 英文名称&#xff1a; CY3-PEG-DBCO 分子量&#xff1a;1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&#xff0c;10k&#xff0c;20k&#xff08;可按需定制&#xff09; 质量控制&#xff1a;95% 原料分散系…

SSM校园疫情防控

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 管理员功能&#xff1a; 教职工管理&#xff08;管理已注册的教职工&#xff09; 出入管理&#xff08;出入日期、人员姓…

若依缓存使用浅析

配置 这块主要涉及两个类 FastJson2JsonRedisSerializer : 继承 RedisSerializer 接口自定义使用 fastjson 进行序列化和反序列化RedisConfig&#xff1a;配置使用 StringRedisSerializer 来进行key的序列化与反序列&#xff0c;使用刚才我们 FastJson2JsonRedisSerializer 来…

通过WSL2运行GUI程序

上次我写过一篇VGPU和WSL2&#xff0c;这回我打算写一篇关于《通过WSL2运行GUI程序》的笔记。 起因 总所周知&#xff0c;KVM in Linux支持GPU passthrough(GPU直通)功能的&#xff0c;就是配置稍稍多了一点。最初想试试如何在Hyper-V中尝试安装VM&#xff0c;但是vgpu的文档…