tuple是C++11新标准里的类型。它是一个类似pair类型的模板。pair类型是每个成员变量各自可以是任意类型,但是只能有俩个成员,而tuple与pair不同的是它可以有任意数量的成员。但是每个确定的tuple类型的成员数目是固定的。
当我们希望将一些不同类型的数据和成单一对象时,可能大家会想到结构体(类),tuple是一种比结构体来的更加方便的类型
构造一个tuple
tuple<const char*, int>tp = make_tuple(sendPack,nSendSize); //构造一个tuple
这个tuple等价于一个结构体
struct A
{
char* p;
int len;
};
获取其中的值:
int len = get<1>(); //第二个值
也可以在容器中套用,比如:
priority_queue<tuple<double, int, int>> pq;
auto [x, a, b] = pq.top();
pq.pop();
pq.push({x, a, b});