pair
std:pair的主要作用是将两个数据合并为一个数据。 两个数据可以是相同的类型,也可以是不同的类型。
c标准库中的“必须返回两个值”函数也使用pair对象。
class pair可以将两个值视为一个单元。 容器类map和multimap是使用pairs管理其“健康/真实”(key/value )的配对元素。
1.构造函数
pairT1、T2 p1;//两个元素分别为T1和T2类型,创建用值初始化的空pair对象。
pairT1、T2P1(V1、v2 );//两个元素分别创建T1和T2类型的pair对象。 其中first成员初始化为v1,second成员初始化为v2。
例如,pairstring,intname_age('Tom ',18 ); 需要//类型声明
2.pair对象的操作
访问两个元素的操作可以通过first和sencond访问
pairint,double p1;
p1.first=1;
p1.second=2.5;
make_pair函数
templatepairmake_pair(T1a,T2 b ) returnpair,b ); }
特征是可以生成pair对象,而不用写类型。 因此,可以使用pair构造函数和make_pair来生成所需的pair。
STD:3360make_Pair(42,' @ ';
不需要费力地写:
std:pairint,char(42,' @ ' ) ) )。
例如pairint、double p1;
P1=make _ pair (1,1.2 );
延长:在c 17中,不需要特别指定,可以直接导出类型
pairp (1,2.2; //c 17自动导出tuple
tuple是C 11新标准中的类型。 这是pair类型的模板。 pair类型的每个成员变量可以是任意类型,但只有两个成员。 另一方面,tuple与pair不同,可以有任意数量的成员。 但是,每个特定tuple类型的成员数量是固定的。
与pair一样,可以在构造函数和make_tuple中初始化定义。
tupleint,int,float TP (1,2,3.1 );
STD :3360 tuples TD :3360 string,std:string,int T2=STD :3360 make _ tuple (yqdby (,csdmy ),199999
C 17不需要特别指定,可以直接导出类型。 代码如下。 STD :3360 tuple eee (64,128.0,' yqdby ';
1 .接入元素使用"get()"方法,get中的位置信息为常量表达式(const expression);
例如,cout '的第一个元素是:'get0(TP ) endl;
2.http://获取www.Sina.com /元素类型:
例如,std:tuple_element1、Decltype(t ) :3360 typecnt=STD :3360 get1) t;
通过std::tuple_element0, decltype(t)::type取得元素数
例如,size _ tnum=STD 33603360 tuple _ sizedecltype (t ) :value;