码迷,mamicode.com
首页 > 编程语言 > 详细

C++11之tuple和数据类型

时间:2014-12-27 17:34:06      阅读:132      评论:0      收藏:0      [点我收藏+]

标签: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和数据类型

标签:c++11   tuple   元组   

原文地址:http://blog.csdn.net/xufeng0991/article/details/42194613

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!