当前位置: 首页 > news >正文

C++学习 --pair

目录

1, 什么是pair

2, 创建pair

2-1, 标准数据类型

2-2, 自定义数据类型

3, 查询元素

3-1, 标准数据类型

3-2, 自定义数据类型


1, 什么是pair

数据以键值对形式存放的容器, 第一个是, 第二个是

2, 创建pair

pair<数据类型, 数据类型> 对象名, 可创建一个pair, 数据类型可以是标准数据类型, 也可以是自定义类型

2-1, 标准数据类型

//键数据类型为string, 值数据类型为int
//pair<string, int> px为创建pair对象, 后面的部分是对其进行赋值
pair<string, int> p1(pair<string, int>("aaa", 1));
pair<string, int> p2 = make_pair("bbb", 2);
pair<string, int> p3(map<string, int>::value_type("ccc", 3));

2-2, 自定义数据类型

Myclass1 mc_1("张三", 10);
Myclass2 mc_2("李四", 20);
//键数据类型为MyClass, 值数据类型为MyClass2
pair<Myclass1, Myclass2> p1(mc_1, mc_2);
pair<Myclass1, Myclass2> p2 = make_pair(mc_1, mc_2);
pair<Myclass1, Myclass2> p3(map<Myclass1, Myclass2>::value_type(mc_1, mc_2));

3, 查询元素

通过对象名.first, 访问pair的第一个元素, 对象名.second, 访问pair的第二个元素

3-1, 标准数据类型

#include <iostream>
#include <string>
#include <map>using namespace std;void print_pair_1(pair<string, int>& p)
{cout << "键:" << p.first  << endl;cout << "值:" << p.second << endl;
}int main()
{pair<string, int> p1 = make_pair("bbb", 2);print_pair_1(p1);system("pause");return 0;
}

3-2, 自定义数据类型

#include <iostream>
#include <string>
#include <map>using namespace std;class Myclass1
{
public:Myclass1(string name, int age) : m_name(name), m_age(age) {};string m_name;int m_age;
};class Myclass2
{
public:Myclass2(string name, int age) : m_name(name), m_age(age) {};string m_name;int m_age;
};void print_pair_1(pair<Myclass1, Myclass2>& p)
{cout << "键:" << p.first.m_name  << " " << p.first.m_age << endl;cout << "值:" << p.second.m_name << " " << p.second.m_age << endl;
}int main()
{Myclass1 mc_1("张三", 10);Myclass2 mc_2("李四", 20);pair<Myclass1, Myclass2> p1 = make_pair(mc_1, mc_2);print_pair_1(p1);system("pause");return 0;
}

相关文章:

  • .Net Web项目创建比较不错的参考文章
  • opencv(3):控制鼠标,创建 tackbar控件
  • Django学习日志05
  • vscode 配置 lua
  • 量化交易:公司基本面的量化
  • pytorch 安装 2023年
  • 【咖啡品牌分析】Google Maps数据采集咖啡市场数据分析区域分析热度分布分析数据抓取瑞幸星巴克
  • Hoppscotch:开源 API 开发工具,快捷实用 | 开源日报 No.77
  • Polygon zkEVM的Dragon Fruit和Inca Berry升级
  • Python------列表 集合 字典 推导式(本文以 集合为主)
  • 编译智能合约以及前端交互工具库(Web3项目一实战之三)
  • 视频怎么做成二维码?在线教学视频码的制作技巧
  • FISCO BCOS 3.0【02】配置和使用系统自带的控制台
  • MFC 对话框
  • C语言——冒泡排序
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [译]Python中的类属性与实例属性的区别
  • Django 博客开发教程 8 - 博客文章详情页
  • es6(二):字符串的扩展
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • IndexedDB
  • JavaScript设计模式与开发实践系列之策略模式
  • Java教程_软件开发基础
  • JS学习笔记——闭包
  • MySQL主从复制读写分离及奇怪的问题
  • React-生命周期杂记
  • Spark RDD学习: aggregate函数
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • windows-nginx-https-本地配置
  • 包装类对象
  • 今年的LC3大会没了?
  • 新手搭建网站的主要流程
  • 学习笔记TF060:图像语音结合,看图说话
  • Mac 上flink的安装与启动
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 我们雇佣了一只大猴子...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $().each和$.each的区别
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (三)docker:Dockerfile构建容器运行jar包
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NetCore部署微服务(二)
  • ?
  • [20180129]bash显示path环境变量.txt
  • [ACTF2020 新生赛]Upload 1
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh
  • [C++]C++入门--引用