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++中都是常用的数据结构,但它们的使用场景和特性有很大的区别。
-
pair是一个模板类,用于将两个值组合成一个单一的对象。pair的两个元素分别被称为first和second,可以是任何类型的值。pair通常用于需要将两个相关值作为一个整体进行处理的场景,例如在排序算法中。
-
unordered_map则是一个无序的键值对容器,它允许你通过键(key)快速查找对应的值(value)。
-
unordered_map内部使用哈希表来实现,因此其插入、查找和删除操作的平均时间复杂度都是O(1)。由于unordered_map是无序的,因此它不支持像map那样的根据键进行排序的操作。
总结来说,pair主要用于将两个值组合成一个整体,而unordered_map则用于存储键值对,并通过键快速查找对应的值。这两者在使用场景和特性上有很大的区别。