首页 > 代码库 > C++11之tuple和数据类型
C++11之tuple和数据类型
C++11仲引入了多元数组tuple,用于存放不同数据的数组。
初始化方法有两种:
tuple() 构造函数
make_tuple() 创建函数
主要有以下几个常用函数:
head() 获取第一个元素的值
tail() 获取剩下所有元素的值
get<N>() 获取第N个元素的值,N必须为常量,无法使用循环遍历tuple
tuple_element<N, decltype(tup)>::type 获取第N个元素的类型
tuple_size<decltype(tup)>::value 获取元组tup的元素个数
另外关于类型:
auto 自动类型推导,从初始化表达式中推断出变量的数据类型
decltype 从一个变量或表达式中得到类型
听起来很混,看代码就知道了。
#include <map> // 使用tuple需要包含的头文件 #include <iostream> using namespace std; int main() { tuple<int, char, string>tup0(1, 'A', "hello world"); int e1 = tup0.head();// 1 int e2 = tup0.tail().head(); // 'A' unsigned short cnt = tuple_size(decltype(tup0))::value; // 获取元素个数:3 tuple<char, string> tup1 = tup0.tail(); tuple<double, string> tup2 = make_tuple(1.1, "ABC"); auto d0 = get<0>(tup2);// 1.1 auto d1 = get<1>(tup2);// "ABC" cout <<typeid(d0).name()<< endl;// 获取元素的数据类型:double decltype(d0) d2 = d0;// 逆推d0的数据类型,并使用其声明一个变量d0,然后赋值为d0 return 0; }
C++11之tuple和数据类型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。