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

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;
}

http://www.kler.cn/news/135604.html

相关文章:

  • AIGC 技术在淘淘秀场景的探索与实践
  • JUnit 单元自动化
  • 计算机毕业设计 基于SpringBoot的企业内部网络管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 五、hdfs常见权限问题
  • 二次开发库Demo【C#】
  • YOLOv8 加持 MobileNetv3,目标检测新篇章
  • 微信浏览器自动播放音频(兼容Android和iOS)
  • BP神经网络原理与如何实现BP神经网络
  • 如何找到自己的兴趣和擅长,并以此为职业?
  • Windows SDK
  • 浅析ChatGPT中涉及到的几种技术点
  • 【DevOps】Git 图文详解(五):远程仓库
  • Vue 2.0中引入的类型检查Flow
  • 消息中间的应用场景
  • Jenkinsfile+Dockerfile前端vue自动化部署
  • linux nas
  • 《向量数据库指南》——2023云栖大会现场,向量数据库Milvus Cloud成关注焦点
  • Android VSYNC发展历程
  • 新中新身份证阅读器驱动下载sdk DKQ-A16D
  • 竞赛 题目:基于大数据的用户画像分析系统 数据分析 开题
  • 手写消息队列(基于RabbitMQ)
  • 【高级程序设计】Week2-4Week3-1 JavaScript
  • Transformer学习资料
  • Codeforces Round 908 (Div. 2)
  • 配置命令别名
  • 【LeetCode】160. 相交链表
  • 从零带你底层实现unordered_map (1)
  • CISP全真模拟测试题(一)
  • 设计模式-责任链-笔记
  • 【Web】Ctfshow SSRF刷题记录1