C++11元组(tuple)的使用 原创 C++开发 2022年8月10日 16:51 夏至未至 1104 当前内容 1925 字,在路上,马上到,马上到 ### 目录 [TOC] ### 元组函数介绍 tuple相关的一共有4个函数: #### make_tuple 用于创建 tuple: auto tup1 = std::make_tuple("Hello World!", 'a', 3.14, 0); 上述代码创建了一个 `tuple ` 类型的元组。可以看出,在tuple之中可以是完全不同的数据类型。 #### tie 用于拆开tuple auto tup1 = std::make_tuple(3.14, 1, 'a'); double a; int b; char c; std::tie(a, b, c) = tup1; 这样做的结果是 a = 3.14, b = 1, c = ‘a’。 如果不想要某一位的值,可以直接将其用ignore代替。 std::tie(ignore, b, c) = tup1; #### tuple_cat 用于连接tuple std::tuple tup1(3.14, "pi"); std::tuple tup2(10, 'a'); auto tup3 = tuple_cat(tup1, tup2); 将tup1和tup2连起来就成了tup3。 ### 元组中元素操作 对于获取tuple中元素,有以下操作 #### get 获取第 i 个元素的值: std::tuple tup1(3.14, "pi"); cout << get<0>(tup1); 这样就输出了tup1中的第一个元素3.14. #### tuple_element 获取tuple中特定元素数据类型 std::tuple_element<0, decltype(tup1)>::type 这样就获取到了tup1中第一个元素的数据类型。 注意:获取到的就是数据类型,如int,char。而不是写有“int”或者“char”的字符串。 #### size 获取tuple中元素个数 std::tuple tup1(3.14, "pi"); cout << tuple_size::value; 输出结果为2,表示该tuple中有两个元素。 ### 实验代码 #include #include int main() { // make_tuple: 用于创建tuple auto tup1 = std::make_tuple("Hello World!", 'a', 3.14, 0); // tie: 用于拆开tuple std::string a; char b; double c; int d; std::tie(a, b, c, d) = tup1; std::cout << a << b << c << d << std::endl; // tuple_cat: 用于连接tuple std::tuple tup2(10, 'a'); auto tup3 = std::tuple_cat(tup1, tup2); // get: 获取第 i 个元素的值 std::cout << std::get<5>(tup3) << std::endl; // tuple_element: 获取tuple中特定元素数据类型 std::tuple_element<0, decltype(tup3)>::type test; // size: 获取tuple中元素个数 std::cout << std::tuple_size::value << std::endl; return 0; } 本文标题: C++11元组(tuple)的使用 本文作者: 夏至未至 发布时间: 2022年8月10日 16:51 最近更新: 2022年8月23日 13:59 原文链接: 许可协议: 署名-非商业性-禁止演绎 4.0 国际(CC BY-NC-ND 4.0) 请按协议转载并保留原文链接及作者 tuple(1) 上一个 C++11数组(array)的使用 下一个 C++string类简单实现 当前文章评论暂未开放,请移步至留言处留言。