Pair C++

关于Pair的东西是学习深度优先搜索的时候涉及的这里简单的讲讲。

基本会用就可以。

pair的类型

首先:pair 是 一种模版类型。每个pair 可以存储两个值。

这两种值的类型无限制。也可以将自己写的struct结构体的对象放进去。。

pair<string,int> p;

pair<int ,int > p;

pair<double,int> p;

等等都行。

如果一个函数有两个返回值 的话,如果是相同类型,就可以用数组返回,如果是不同类型,

就可以自己写个struct ,但为了方便就可以使用 c++  自带的pair ,返回一个pair,其中带有两个值。

除了返回值的应用,在一个对象有多个属性的时候 ,一般自己写一个struct ,如果就是两个属性的话,

就可以用pair 进行操作。

应用pair 可以省的自己写一个struct 。如果有三个属性的话,其实也是可以用的pair 的 ,

极端的写法:

pair <int ,pair < int , int  >  >

写法极端。

pair<int ,int >p (5,6);

pair<int ,int >  p1= make_pair(5,6);

pair<string,double> p2 ("aa",5.0);

pair <string ,double> p3 = make_pair("aa",5.0);

有这两种写法来生成一个pair。

如何取得pair的值呢。。

每个pair 都有两个属性值  first  和second

cout<<p1.first<<p1.second;

注意是属性值而不是方法。

具体的赋值位:

p.first = 2;

p.second = 10;

下面是测试的代码:

时间: 2024-12-28 13:43:57

Pair C++的相关文章

C++学习 之pair

Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化. pair<string, string> a("James", "Joy"); 也可以像上面一样在定义的时候直接对其初始化. 由于pair类型的使用比

C++ STL pair详解

一.解释: p { margin-bottom: 0.25cm; direction: ltr; color: #00000a; line-height: 120%; text-align: left; orphans: 2; widows: 2 } p.western { font-family: "Liberation Serif", serif; font-size: 12pt } p.cjk { font-family: "Noto Sans CJK SC Regul

C++ pair用法

 pair 默认对first升序,当first相同时对second升序: 类模板:template <class T1, class T2> struct pair 参数:T1是第一个值的数据类型,T2是第二个值的数据类型. 功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问. 具体用法: 1.定义(构造): 1 pair<int, double> p1; //使用默认构造函数 2 p

RFID Exploration and Spoofer a bipolar transistor, a pair of FETs, and a rectifying full-bridge followed by a loading FET

RFID Exploration Louis Yi, Mary Ruthven, Kevin O'Toole, & Jay Patterson What did you do? We made an Radio Frequency ID (RFID) card reader and, while attempting to create a long-range spoofer, created an jammer which overcomes card's signals. The read

pair

这个是非常经典的树分治的题目,关于60分的做法.参见poj1741 按照树分治的惯例,先全局统计,然后再减掉重复的东西. 那么如何计算贡献呢? 我们按照poj1741的方法.先将满足一维的情况的数据全部放入一个树状数组里面,然后我们就能够一维统计了. 复杂度O(nlog2n) 代码也比较凑合.... #include<cstdlib> #include<cstdio> #include<cstring> #include<algorithm> #includ

关于模板pair的用法

在挑战程序设计竞赛中看到调用pair,就上网查了一下 类型申明有两种 template <class T1, class T2> struct pair typedef pairt<class T1,class T2> p;//p为任意的 调用起来就是 p.first=.. p.second=.. 当然,如果是是用第一种申明方式的话,还要加上pair<int, int>p; 这个可以和queue连用, 这样的话,对于二维的bfs或是写spfa也可以方便用queue

【BZOJ1786】[Ahoi2008]Pair 配对 DP

[BZOJ1786][Ahoi2008]Pair 配对 Description Input Output Sample Input 5 4 4 2 -1 -1 3 Sample Output 4 题解:结论!!!为了使逆序对最少,我们在-1位置填入的数一定是单调不减的.(可以用反证法证明,很简单.) 所以DP,我们用f[i][j]表示枚举到第i个数,上一个在-1位置填入的数是j个最少逆序对个数.然后转移也很简单~ #include <cstdio> #include <cstring&g

STL之pair及其非成员函数make_pair()

std::pair是一个结构模板,提供了一种将两个异构对象存储为一个单元的方法. 定义于头文件 <utility> template< class T1, class T2 > struct pair; 成员类型 Definition   成员对象 Type first_type T1         First T1 second_type T2   Second T2 1.定义(构造): pair<int, double> p1; //使用默认构造函数 pair&l

ural 2019 Pair: normal and paranormal

2019. Pair: normal and paranormal Time limit: 1.0 secondMemory limit: 64 MB If you find yourself in Nevada at an abandoned nuclear range during Halloween time, you’ll become a witness of an unusual show. Here Ghostbusters hold annual tests for new ve

UVa 1592 数据库(c++pair)

Input Input contains several datasets. The first line of each dataset contains two integer numbersn and m (1n10000, 1m10), the number of rows and columns in the table. The following n lines contain table rows. Each row hasm column values separated by