C++11新特性之tuple元组
1.介绍
tuple(元组)是C++11新引入的一种类模版,其特点是:实例化的对象可以存储任意数量、任意类型的数据。当需要存储不同类型的元素或返回不同类型的多个数据时,都可以使用tuple。
2.tuple用法
(1)创建tuple对象
tuple本质上是个类模板,定义在头文件并位于std命名空间,因此想使用它,需要在程序中包含以下代码:
#include <tuple>
using std::tuple;
实例化tuple模版类对象常用的有两种——使用该类的构造函数或使用make_tuple()函数。下边各举个例子:
std::tuple<int, char> first;
auto first = std::make_tuple (1,'a');
在使用中,两种方法都可,可自行选择。
3.tuple常用函数
(1)tup1.swap(tup2)。交换两个tuple对象存储的内容。
(2)get<num>(tup)。获取tup对象的第num+1个元素。
(3)tuple_size<type>::value。获取tup的元素个数。type是tup对象的类型,可以使用decltype直接推导。
(4)tuple_element<i,type>::type。获取tup对象第i+1个元素的类型。
(5)tie(args......) = tup。将tup内的元素逐一赋值给args...提供的左值变量。
(6)tuple_cat(args....)。args...为多个tup对象。将多个tup对象的元素合并为一个。
4.总结
优点:tuple可以存储任意数量、任意类型的数据。
注意事项:使用过程中要注意库函数或变量的功能与用法,正确使用。