何为 tuple ?tuple 类似。 struct(或 class) 但有了 struct (或 class)何必还需 tuple?这是一个高深的问题。
目录
一、简介
tuple 就是元组。比如 pair 就是一个二元组,有两个变量,但 tuple 却高级多了,三元组、四元组、五元组······他都能定义。当然,这是 c++11 之后才有的(不要在 dev c++,vs code 上尝试了,等待你的是报错,如下:),因为 tuple 所用的“可变参数模版”是在 c++11 之后才有的(IOI、NOI、NOIp、csp、csp-j、csp-s、gesp、电子学会等级考试······等当然能用,它们用的是 c++14)。
error: no template named 'tuple'
tuple<int> tup;
^
1 error generated.
二、应用
1.定义
引用 tuple 头文件:
#include <tuple>
定义 tuple ,和一般模版类一样,1.类型名、2.模版、3.变量名:
tuple <int,string,char> tup;
可以在构造时赋值:
tuple <int,string,char> tup(1024,"Hello world!",65536);
后期赋值也行:
tup = make_tuple(1024,"Hello world!",65536);
“make_tuple” 指生成一个 tuple 。
2.函数
1.swap
交换两个 tuple:
tup1.swap(tup2);
不用这样!!!
swap(tup1,tup2);
2.get
返回 tuple 中第 x 个元素的值:
cout << get <x> (tup);
不要这样!!!
cout << tup.get <x> ();
这样也不行!!!
cout << tup <x> .get();
3.tuple_cat
与猫无关!!!链接两个 tuple:
tuple <int,int,int,int,string> tup;
tup = tuple_cat(t1,t2,t3);
你学会了吗?