c++11 tuple

c++11新增了tuple类型,它可以容纳不定数量的类型变量,像一个更加易用的简化版struct。

tuple不是寻常的容器,它不能用迭代器去遍历。get的值需要编译期就确定,因此也不能用index下标变量去遍历:

虽然不能用一般的方式的遍历tuple,但可以用不定参数的模板在编译期去递归获取每个参数。一下是个例子来打印tuple的值。

tuple里面的类型可以是引用类型。

使用tie,可以方便的从tuple中提取出值来:

还可以用std::ignore忽略提取某些值:

第一次看到tie的时候觉得很神奇,为么tie能够的提取tuple中的值呢?答案很简单,tie根据参数建立了一个临时的参数引用类型tuple,然后重载了=操作,再利用不定参数模板来遍历另一个tuple中的值。

发表评论

电子邮件地址不会被公开。 必填项已用*标注