新昌县建设局网站,广东seo教程,北京网页设计公司招聘,浙江设计公司1#xff0c;pair的应用 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair
如stl中的map就是将key和value放在一起来保存。
另一个应用是#xff0c;当一个函数需要返回2个数据的时候#xff0c;可以选择pair。
pair的实现是一个结构体#xff0c;主要的… 1pair的应用 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair
如stl中的map就是将key和value放在一起来保存。
另一个应用是当一个函数需要返回2个数据的时候可以选择pair。
pair的实现是一个结构体主要的两个成员变量是first second 因为是使用struct不是class所以可以直接使用pair的成员变量。 类模板templateclass T1,class T2 struct pair
参数T1是第一个值的数据类型T2是第二个值的数据类型。
功能pair将一对值(T1和T2)组合成一个值 这一对值可以具有不同的数据类型T1和T2 两个值可以分别用pair的两个公有函数first和second访问。
定义(构造函数)2pair的创建和初始化 pairT1, T2 p1; //创建一个空的pair对象使用默认构造//它的两个元素分别是T1和T2类型采用值初始化。
pairT1, T2 p1(v1, v2); //创建一个pair对象
//它的两个元素分别是T1和T2类型其中first成员初始化为v1second成员初始化为v2。make_pair(v1, v2); // 以v1和v2的值创建一个新的pair对象//其元素类型分别是v1和v2的类型。p1 p2; // 两个pair对象间的小于运算其定义遵循字典次序
//如 p1.first p2.first 或者 p2.first p1.first p1.second p2.second 则返回true。
p1 p2 // 如果两个对象的first和second依次相等//则这两个对象相等该运算使用元素的操作符。
p1.first; // 返回对象p1中名为first的公有数据成员
p1.second; // 返回对象p1中名为second的公有数据成员2pair的创建和初始化
pair包含两个数值与容器一样pair也是一种模板类型。但是又与之前介绍的容器不同
在创建pair对象时必须提供两个类型名两个对应的类型名的类型不必相同
pairstring, string anon; // 创建一个空对象anon两个元素类型都是string
pairstring, int word_count; // 创建一个空对象 word_count, 两个元素类型分别是string和int类型
pairstring, vectorint line; // 创建一个空对象line两个元素类型分别是string和vector类型当然也可以在定义时进行成员初始化
pairstring, string author(James,Joy); // 创建一个author对象//两个元素类型分别为string类型并默认初始值为James和Joy。pairstring, int name_age(Tom, 18);
pairstring, int name_age2(name_age); // 拷贝构造初始化pair类型的使用相当的繁琐如果定义多个相同的pair类型对象可以使用typedef简化声明
typedef pairstring,string Author;
Author proust(March,Proust);
Author Joy(James,Joy); 变量间赋值
airint, double p1(1, 1.2);
pairint, double p2 p1; // 复制构造以初始化对象
pairint, double p3
p3 p1; // 复制构造以初始化对象3pair对象的操作
访问两个元素操作可以通过first和second访问 pairint ,double p1;p1.first 1;p1.second 2.5;coutp1.first p1.secondendl;//输出结果1 2.5string firstBook;
if(author.firstJames author.secondJoy)firstBookStephen Hero;4生成新的pair对象
还可以利用make_pair创建新的pair对象
pairint, double p1;p1 make_pair(1, 1.2);cout p1.first p1.second endl;//output: 1 1.2int a 8;string m James;pairint, string newone;newone make_pair(a, m);
cout newone.first newone.second endl;//output: 8 James