当前位置: 代码迷 >> 综合 >> STL—pair
  详细解决方案

STL—pair

热度:83   发布时间:2023-11-22 14:56:04.0

文章目录

  • 一、什么是pair
  • 二、pair的操作
    • 1.pair的定义
    • 2.pair的输出
    • 3.pair的赋值
      • 法一
      • 法二
    • 4.pair的比较


一、什么是pair

pair是一个特别实用的“小玩意儿”,当我们想把两个元素捆绑在一起当成一个元素的时候,又不想定义结构体的时候,这个时候就可以使用pair,也就是说,pair实际上可以当成内部只有两个元素的结构体,且这两个元素的类型是可以指定的.

struct pair {
    typename1 first;typename2 second;
};

要使用pair,要先添加#include <map>,或者#include <utility>,这里建议只需要记住前一个就ok了


二、pair的操作

1.pair的定义

pair有两个参数,分别对应firstsecond的数据类型,它们可以是任意基本数据结构类型或者容器

pair<typename1, typename2> name;

对pair的初始化:

pair<string, int> p("辰chen", 19);

2.pair的输出

pair的两个元素我们通过p.firstp.second输出

#include <iostream>
#include <map>using namespace std;int main()
{
    pair<string, int> p("辰chen", 19);;cout << p.first << ' ' << p.second;return 0;
}

输出结果为:辰chen 19

3.pair的赋值

pair的赋值我们在这里介绍两种方法,更推荐掌握第一种(如果你的编译器可以正常编译的话)

法一

#include <iostream>
#include <map>using namespace std;int main()
{
    pair<string, int> p;p = {
    "辰chen", 19};cout << p.first << ' ' << p.second;return 0;
}

输出结果为:辰chen 19

法二

#include <iostream>
#include <map>using namespace std;int main()
{
    pair<string, int> p;p = make_pair("辰chen", 19);cout << p.first << ' ' << p.second;return 0;
}

输出结果为:辰chen 19

4.pair的比较

两个pair类型的数据进行比较的时候,比较规则是:先比较first的大小,只有当first的大小相等的时候才会去比较second

#include <iostream>
#include <map>using namespace std;int main()
{
    pair<int, int> p[3];p[0] = {
    5, 10};p[1] = {
    5, 15};p[2] = {
    10, 5};if (p[0] < p[2]) cout << "p[0] < p[2]" << endl;if (p[0] <= p[2]) cout << "p[0] <= p[2]" << endl;if (p[0] < p[1]) cout << "p[0] < p[1]" << endl;return 0;
}

输出结果:
p[0] < p[2]
p[0] <= p[2]
p[0] < p[1]