C++11 tuple元组详解
C++11 标准新引入了一种类模板,命名为 tuple(中文可直译为元组)。tuple 最大的特点是:实例化的对象可以存储任意数量、任意类型的数据。
tuple 的应用场景很广泛,例如当需要存储多个不同类型的元素时,可以使用 tuple;当函数需要返回多个数据时,可以将这些数据存储在 tuple 中,函数只需返回一个 tuple 对象即可。
本节,我们将给大家详细地讲解 tuple 的用法。
tuple对象的创建
tuple 本质是一个以可变模板参数定义的类模板,它定义在 头文件并位于 std 命名空间中。因此要想使用 tuple 类模板,程序中需要首先引入以下代码:
#include <tuple>
using std::tuple;
实例化 tuple 模板类对象常用的方法有两种,一种是借助该类的构造函数,另一种是借助 make_tuple() 函数。
1) 类的构造函数
tuple 模板类提供有很多构造函数,包括:
- 默认构造函数
constexpr tuple();
- 拷贝构造函数
tuple (const tuple& tpl);
- 移动构造函数
tuple (tuple&& tpl);
- 隐式类型转换构造函数
template <class... UTypes>
tuple (const tuple<UTypes...>& tpl); //左值方式
template <class... UTypes