网站建设怎么用长尾做标题,北京手机站建站,工业软件开发流程,合肥免费招聘网站目录
pair的定义
pair中元素的访问
pair常用函数实例解析
pair的常见用途 pair是一个很实用的小玩意#xff0c;当想要将两个元素绑在一起作为一个合成元素、又不想要因此定义结构体时#xff0c;使用pair可以很方便地作为一个代替品。也就是说#xff0c;pair实际上可以…目录
pair的定义
pair中元素的访问
pair常用函数实例解析
pair的常见用途 pair是一个很实用的小玩意当想要将两个元素绑在一起作为一个合成元素、又不想要因此定义结构体时使用pair可以很方便地作为一个代替品。也就是说pair实际上可以看作一个内部有两个元素的结构体且这两个元素的类型是可以指定的。
struct pair{typeName1 first;typeName2 second;
};
pair的定义
由于map的内部实现中涉及pair因此添加map头文件时会自动添加utility头文件此时如果需要使用pair就不需要额外再去添加utility头文件。
pair有两个参数分别对应first和second的数据类型它们可以任意基本数据类型或容器。
pairtypeName1,typeName2 name;
因此想要定义参数为string和int类型的pair就可以使用如下写法
pairstring,int p;
如果想在定义pair时进行初始化只需要跟上一个小括号里面填写两个想要初始化的元素即可
pairstring,int p(haha,5);
而如果想要在代码中临时构建一个pair有如下两种方法
1将类型定义写在前面后面用小括号内两个元素的方式
pairstring,int (haha,5);
(2)使用自带的make_pair函数
make_pair(haha,5);
pair中元素的访问
pair中只有两个元素分别是first和second只需要按正常结构体的方式去访问即可。
#includeiostream
#includeutility
#includestring
using namespace std;
int main(){pairstring,int p;p.firsthaha;p.second5;coutp.first p.secondendl;pmake_pair(xixi,55);coutp.first p.secondendl;ppairstring,int(heihei,555);coutp.first p.secondendl;return 0;
}
输出结果
haha 5
xixi 55
heihei 555
pair常用函数实例解析
比较操作数
两个pair类型数据可以直接使用、!、、、、比较大小比较规则是先以first的大小作为标准只有当first相等时才去判别second的大小。
#includecstdio
#includeutility
using namespace std;
int main(){pairint,intp1(5,10);pairint,intp2(5,15);pairint,intp3(10,5);if(p1p3){printf(p1p3\n);}if(p1p3){printf(p1p3\n);}if(p1p2){printf(p1p2\n);}return 0;
}
pair的常见用途
关于pair有两个比较常见的例子
1用来代替二元结构体及其构造函数可以节省编码时间。
2作为map的键值对来进行插入例如下面的例子
#includeiostream
#includestring
#includemap
using namespace std;
int main(){mapstring,int mp;mp.insert(make_pair(heihei,5));mp.insert(pairstring,int(haha,10));for(mapstring,int::iterator itmp.begin();it!mp.end();it){coutit-first it-secondendl;}return 0;
}