昨天打cf来着,有道题用了优先队列。好家伙,一学这优先队列,得学map,学map又得学pair,那能怎么办呢,一点点来呗~
pair的定义
首先解释一下pair是个什么东西,在英文中pair被翻译为“对”。 其实在我的理解里,就是一个小型结构体,pair将两个元素组合成一组数据,由于是结构体,所以在使用其中数据时,可以直接使用,不像类还要封装来封装去。
头文件:#include 定义方式如下: 类模板:template<class T1,class T2> struct pair T1,T2可以是不同的数据类型 这两个数据可由pair的两个公有函数first和second访问
定义:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
pair<int, string> a;
a.first = 1;
a.second ="shisdfg";
cout << a.second << " " << a.first << endl;
return 0;
}
运行结果:
shisdfg 1
类似这样的初始化都是允许的
pair<int, string> a(12, "joy");
pair<int, string> b(a);
pair<int, double> c;
c.first = 45, c.second = 12.4;
make_pair构造函数
这个玩意儿在我看来就是pair自带的构造函数 用法如下啦:
pair<int, double> p1;
p1 = make_pair(1, 1.2);
|