tuple类型

文章目录

  • tuple类型
    • 一、类型简介
    • 二、定义和初始化
    • 三、使用tuple返回多个值

tuple类型

一、类型简介

1、tuple是类似于pair类型的模板,但是tuple可以有任意数量的成员。每个确定的tuple类型的成员数目的固定的。
2、tuple类型及其伴随类型和函数都定义在tuple头文件中。
3、tuple支持的操作

tuple t; t是一个tuple,成员数为n第一个成员的类型为T1,所有成员都进行值初始化
tuple t(v1,v2,v3…vn); 每个成员用对应的v1,v2…初始化
make_tuple(v1,v2,v3,…vn) 返回一个用给定初始值初始化的tuple
t1 == t2 当2个tuple具有2个相同的成员数量,且每个都对应相等时,才为true
t1 != t2 成员数量不等或对应成员值不同
t1 relop t2 关系运算使用字典序,2个比较的tuple必须拥有相同的成员数量
get < i >(t) 返回第i个数据成员的引用
tuple_size< tupleType >::value 表示给定tuple类型中成员的数量
tuple_element::type 表示给定tuple类型中指定成员的类型

二、定义和初始化

//当我们定义tuple时,需要指出每个成员的类型
tuple<size_t,size_t,size_t> v;  //三个成员变量都设置0
tuple<size_t,size_t,size_t> v{1,2,3};

//利用make_tuple生成tuple类型的变量
auto item=make_tuple(1,2,3);

//访问tuple的成员
auto number1=get<0>(item);   //返回item的第一个数据成员
auto number2=get<1>(item);   //返回item的第2个数据成员
auto number3=get<2>(item);   //返回item的第3个数据成员

//不知道tuple准确的类型细节信息
typedef decltype(item) trans;
size_t sz=tuple_size<trans>::value;  
tuple_element<1,trans>::type cnt=get<1>(item); 

三、使用tuple返回多个值

tuple的一个常见用途是从函数返回多个值。

tuple类型_第1张图片

#include
#include
std::tuple<std::string, std::size_t> abs() {

	std::string s = "123456";
	std::size_t n = 12;
	return make_tuple(s, n);
}
int main() {

	auto m= abs();
	auto result = std::get<0>(m);
	auto result1 = std::get<1>(m);
	std::cout << "result=" << result << std::endl;
	std::cout << "result1=" << result1 << std::endl;
}

你可能感兴趣的:(C++,c++,前端,算法)