C++种pair的初始化及与unordered_map的区别

pair的初始化及与unordered_map的区别

  • 概述
  • pair初始化
    • 开发环境
    • 头文件
    • 示例
    • 运行结果
  • 与unordered_map的区别

概述

本文旨在介绍pair初始化,同时简述pair与unordered_map的区别。

pair初始化

pair是一个模板类,可以存储两个类型的数据为一个对象。

开发环境

vs2019。

头文件

要使用pair,需要加头文件#include。

示例

这里只说C++11及其原有的pair初始化。
下面是pair的初始化

	pair<int, string> p2(2,"hello");pair<int, string> p(p2);pair<int, string> p1 = p2;pair<int, string> p3{3,"world"};pair<int, string> p4 = make_pair(4,"kisd");map<int, string> dataMap = { {1,"er"},{2,"sd"}};pair<int, string> p5 = *(++dataMap.begin());cout << "pair p2:(" << p2.first << "," << p2.second <<")"<< endl;cout << "pair p:(" << p.first << "," << p.second <<")"<< endl;cout << "pair p1:(" << p1.first << "," << p1.second << ")"<<endl;cout << "pair p3:(" << p3.first << "," << p3.second << ")"<<endl;cout << "pair p4:(" << p4.first << "," << p4.second << ")"<<endl;cout << "pair p5:(" << p5.first << "," << p5.second << ")"<<endl;

运行结果

在这里插入图片描述

与unordered_map的区别

pair和unordered_map在C++中都是常用的数据结构,但它们的使用场景和特性有很大的区别。

  1. pair是一个模板类,用于将两个值组合成一个单一的对象。pair的两个元素分别被称为first和second,可以是任何类型的值。pair通常用于需要将两个相关值作为一个整体进行处理的场景,例如在排序算法中。

  2. unordered_map则是一个无序的键值对容器,它允许你通过键(key)快速查找对应的值(value)。

  3. unordered_map内部使用哈希表来实现,因此其插入、查找和删除操作的平均时间复杂度都是O(1)。由于unordered_map是无序的,因此它不支持像map那样的根据键进行排序的操作。

总结来说,pair主要用于将两个值组合成一个整体,而unordered_map则用于存储键值对,并通过键快速查找对应的值。这两者在使用场景和特性上有很大的区别。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue里echarts的使用:画饼图和面积折线图

vue里echarts的使用,我们要先安装echarts,然后在main.js里引入: //命令安装echarts npm i echarts//main.js里引入挂载到原型上 import echarts from echarts Vue.prototype.$echarts = echarts最终我们实现的效果如下: 头部标题这里我们封装了一个全局公共组件common-he…

springboot751社区维修平台

springboot751社区维修平台 获取源码——》公主号&#xff1a;计算机专业毕设大全

前端(vue)数据存储方案

引言 本需求文档旨在明确前端项目中的数据存储需求&#xff0c;包括数据类型、数据结构、数据交互方式等。它定义了前端项目中需要存储和处理的数据&#xff0c;以及对这些数据进行访问和操作的要求。 功能需求 数据存储按数据类型分为 持久存储、内存存储&#xff08;响应式…

Linux(ACT)权限管理

文章目录 一、 ATC简介二、 案例1. 添加测试目录、用户、组&#xff0c;并将用户添加到组2. 修改目录的所有者和所属组3. 设定权限4. 为临时用户分配权限5. 验证acl权限 6. 控制组的acl权限 一、 ATC简介 ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xf…

C# 1.消息队列MQ使用场景--图文解析

为什么使用消息队列MQ&#xff08;Message Queue&#xff09;&#xff1f; 消息队列有什么优点和缺点&#xff1f; Kafka(大数据日志采集)、ActiveMQ(最早的MQ--目前使用较少)、RabbitMQ(开源&#xff0c;中小型企业使用足够)、RocketMQ(阿里开发&#xff0c;大型企业适用) 都…

游戏如何做到无视攻击

游戏行业是极易遭受网络攻击的&#xff0c;就算是一款新游戏上线也难免会遭受到攻击&#xff0c;目前高防服务器所采用的防御都是属于硬防&#xff0c;我们也知道大流量攻击的案例大多发生在游戏行业&#xff0c;大流量持续攻击必然会造成服务器的黑洞问题&#xff0c;直接导致…

spring框架介绍

spring 1.优点 1&#xff09;针对接口编程&#xff0c;解耦合 2&#xff09;aop&#xff1a;变向切面编程&#xff0c;动态增加功能 3&#xff09;方便集成框架&#xff0c;mybatis,hibernate,strust等 4&#xff09;降低j2ee接口的使用难度 2.spring是干什么的 管理bean及bean…

【Vuforia+Unity】AR02-长方体物体识别(Multi Targets)

1.创建模型 选择多维长方体图&#xff0c;这个长方体是生活中的真实物体的拍摄图&#xff0c;提前把6个面拍摄好并裁剪干净。 官网创建模型https://developer.vuforia.com/targetmanager/project/targets?projectId0ddbb5c17e7f4bf090834650bbea4995&avfalse 设置长宽高…

黑马头条-day10

文章目录 app端文章搜索1、文章搜索1.1 ElasticSearch环境搭建1.2 索引库创建①需求分析②ES导入数据场景分析③创建索引和映射 1.3 索引数据同步①app文章历史数据导入ES②文章实时数据导入ES 1.4 文章搜索多条件复合查询①关键词搜索②搜索接口定义 2、搜索历史记录2.1 需求说…

【前端素材】推荐优质后台管理系统Acara平台模板(附源码)

一、需求分析 后台管理系统在多个层次上提供了丰富的功能和细致的管理手段&#xff0c;帮助管理员轻松管理和控制系统的各个方面。其灵活性和可扩展性使得后台管理系统成为各种网站、应用程序和系统不可或缺的管理工具。 后台管理系统是一种用于管理和控制网站、应用程序或系…

有哪些适合程序员的副业

如果你经常玩知乎、看公众号&#xff08;软件、工具、互联网这几类的&#xff09;你就会发现&#xff0c;好多资源连接都变成了夸克网盘、迅雷网盘的资源链接。 例如&#xff1a;天涯神贴&#xff0c;基本上全是夸克、UC、迅雷网盘的资源链接。 有资源的前提下&#xff0c;迅雷…

三opencv源码解压及环境变量配置

1.双击opencv-3.4.6-vc14-vc15.exe 2.选择解压的路径&#xff0c;点击【extract】 3.设计环境变量