之前一直以为 tuple 只是 python 里的数据容器,今天才知道原来 c++ 里也有
记录一些简单的用法,便于之后查询,后续可能会补充…
元组 tuple 可以理解为一个特殊的 vector,vector里面只能存储同一种类型的数据,但是 tuple 里可以存储各种不同类型的数据
(当然也可以理解成可以存很多数据的 pari)
头文件
#include <tuple>
定义
tuple<int,string, int> t3 = {1, "3", 3};
也可以
tuple<string, int> tp = make_tuple(a, b);
访问 & 修改
get<访问元素位置>(访问元组名称)
以上面定义的 tuple 为例
get<0>(t3)
的值为 1
也可以直接利用这个函数修改 tuple 内元素的值
get<0>(t3) = 2
那么现在的 tuple 变为 {2, "3", 3}
利用 tuple 给元素批量赋值
这里要利用到一个新的函数 tie
,它可以将多个元素组成一个元组,再用原有的元组给这个新元组的每一个元素赋值
还是举例说明
tuple<int,string, int> t3 = {1, "3", 3};
int a;
string b;
int c;
tie(a, b, c) = t3;
那么现在 a b c 的值分别是 1 “3” 3
要注意,不能直接写tie(a, b, c) = {1, "3", 3}
,会报错
当我们不需要返回一个 tuple 中的某些值时,可以利用 ignore
忽略掉它
比如:
tuple<int,string, int> t3 = {1, "3", 3};
int a;
int c;
tie(a, ignore, c) = t3;