C++ tuple
tuple 是将不同类型的元素打包在一个对象中的对象,就像 pair 对象对元素对所做的那样。
从概念上讲,tuple 类似于普通的旧数据结构(类似于 c 的结构体),但它没有指定数据成员,而是按 tuple 中的顺序访问元素。
tuple 中特定元素的选择是在模板实例化时完成的,因此,必须在编译时使用 get 和 tie 等辅助函数来指定。
tuple 与 pair (在头文件 <utility> 中定义)密切相关:元组可以由 pair 构造,pair 可以作为 tuple 来处理,以达到某些目的。
array 还具有某些类似元组的功能。(array 可以使用 get)
示例:
#include <iostream>
using namespace std;
template<int IDX, int MAX, typename... Args>
struct PRINT_TUPLE {
static void print(ostream& os, const tuple<Args...>& t) {
os << get<IDX>(t) << (IDX + 1 == MAX ? "" : ",");
PRINT_TUPLE<IDX + 1, MAX, Args...>::print(os, t);
}
};
template<int MAX, typename.