C++学习 --pair

目录

[1, 什么是pair](#1, 什么是pair)

[2, 创建pair](#2, 创建pair)

[2-1, 标准数据类型](#2-1, 标准数据类型)

[2-2, 自定义数据类型](#2-2, 自定义数据类型)

[3, 查询元素](#3, 查询元素)

[3-1, 标准数据类型](#3-1, 标准数据类型)

[3-2, 自定义数据类型](#3-2, 自定义数据类型)


1, 什么是pair

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

2, 创建pair

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

2-1, 标准数据类型

cpp 复制代码
//键数据类型为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, 自定义数据类型

cpp 复制代码
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, 标准数据类型

cpp 复制代码
#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, 自定义数据类型

cpp 复制代码
#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;
}
相关推荐
小七在进步15 小时前
string的使用(1)
c++·visual studio
白杨尚青16 小时前
C++进阶篇(六):map 和 set 的模拟实现——用红黑树封装 mymap/myset(迭代器 + operator[])
开发语言·c++·迭代器·stl·set·map·红黑树
kloc19 小时前
聊天室项目入口网关子服务的实现
linux·c++
csdn_aspnet1 天前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
li星野1 天前
相位补偿学习记录:把被颅骨“打乱“的声波重新对齐
学习
小七在进步1 天前
string的使用(2)
c++
Z21-X1 天前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
青少儿编程课堂1 天前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
red_redemption1 天前
自由学习记录(230)
学习
wo_jack1 天前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list