做网站还是做微信公众号,厂房建设公司哪家好,宿州保洁公司有哪些,图文广告公司名称C11 标准新引入了一种类模板#xff0c;命名为 tuple#xff08;中文可直译为元组#xff09;。tuple 最大的特点是#xff1a;实例化的对象可以存储任意数量、任意类型的数据。tuple 的应用场景很广泛#xff0c;例如当需要存储多个不同类型的元素时#xff0c;可以使用…C11 标准新引入了一种类模板命名为 tuple中文可直译为元组。tuple 最大的特点是实例化的对象可以存储任意数量、任意类型的数据。tuple 的应用场景很广泛例如当需要存储多个不同类型的元素时可以使用 tuple当函数需要返回多个数据时可以将这些数据存储在 tuple 中函数只需返回一个 tuple 对象即可。
1.声明并初始化一个tuple对象 std::tupleint, float, std::string t1(41, 6.3, nico);std::cout tupleint, float, std::string, sizeof sizeof(t1) std::endl;std::cout t1: std::get0(t1) std::get1(t1) std::get2(t1) std::endl; // 获取下标 0 1 2处的元素
2.利用auto关键字自动获取类型 auto t2 std::make_tuple(22, 44, hello);std::cout t2 sizeof sizeof(t2) std::endl;std::cout t2: std::get0(t2) std::get1(t2) std::get2(t2) std::endl;
3.tuple比大小操作 // 比大小操作if(t1 t2){std::cout t1 t2 std::endl;}else if(t1 t2){std::cout t1 t2 std::endl;}else{std::cout t1 t2 std::endl;}
4.tie绑定操作进行复制 std::tupleint, float, std::string t3(77, 1.1, more light);int i1;float f1;std::string s1;tie(i1, f1, s1) t3;std::cout i1 i1 f1 f1 s1 s1 std::endl;
5.tuple_size函数 功能是获取某个 tuple 对象中元素的个数 typedef std::tupleint, float, std::string TupleType; // 对tupleint, float, std::string取别名 为 TupleTypeint value std::tuple_sizeTupleType::value;std::cout TupleType对象的元素个数为: value std::endl; // 3
6.tuple_elementi, type::type函数 它只有一个成员变量 type功能是获取某个 tuple 对象第 i1 个元素的类型 std::tuple_element0, TupleType::type i2 1;std::cout i2 i2 std::endl; // i2 1
完整代码示例
#include iostream
#include tupleint main(){std::tupleint, float, std::string t1(41, 6.3, nico);std::cout tupleint, float, std::string, sizeof sizeof(t1) std::endl;std::cout t1: std::get0(t1) std::get1(t1) std::get2(t1) std::endl; // 获取下标 0 1 2处的元素// 利用auto关键字 自动获取类型 make_tuple() 函数它以模板的形式定义在 头文件中功能是创建一个 tuple 右值对象或者临时对象auto t2 std::make_tuple(22, 44, hello);std::cout t2 sizeof sizeof(t2) std::endl;std::cout t2: std::get0(t2) std::get1(t2) std::get2(t2) std::endl;// 比大小操作if(t1 t2){std::cout t1 t2 std::endl;}else if(t1 t2){std::cout t1 t2 std::endl;}else{std::cout t1 t2 std::endl;}// tie绑定操作进行复制std::tupleint, float, std::string t3(77, 1.1, more light);int i1;float f1;std::string s1;tie(i1, f1, s1) t3;std::cout i1 i1 f1 f1 s1 s1 std::endl;// tuple_size函数 功能是获取某个 tuple 对象中元素的个数typedef std::tupleint, float, std::string TupleType; // 对tupleint, float, std::string取别名 为 TupleTypeint value std::tuple_sizeTupleType::value;std::cout TupleType对象的元素个数为: value std::endl; // 3// tuple_elementi, type::type函数 它只有一个成员变量 type功能是获取某个 tuple 对象第 i1 个元素的类型std::tuple_element0, TupleType::type i2 1;std::cout i2 i2 std::endl; // i2 1return 0;
}
运行结果