c++ tuple类型
来源:互联网 发布:守望先锋显卡优化 编辑:程序博客网 时间:2024/05/26 07:28
个人笔记
了解tuple:
- tuple是模板,tuple所有成员都是public的
- 使用tuple的相关操作,需要包含头文件tuple。
- 希望将数据组合成单一对象时,使用tuple非常有用。(快而随意的数据结构)
- 一个tuple可以有任意数量的成员,tuple的成员类型也不相同。
- 一个确定的tuple类型的成员数目是固定的,意味着不能有添加和删除能够改变成员数目的操作。
定义和初始化tuple:
1.当我们定义一个tuple时,需要指出每个成员的类型。创建tuple对象时,可以使用tuple的默认构造函数,该默认构造函数对每个成员进行 值初始化
tuple<int float size_t> threet;
2.初始化tuple:tuple的构造函数是 explicit 的,因此必须使用 直接初始化
tuple<size_t,siez_t> tup={1,2,3};//错误tuple<string,vector<double>,int,list<int>> someVal("tuple",{2.14,3.15},100,{1,2,3})//正确tuple<int,int,double> some{2,3,3.15};//这样也行,注意与上面的括号
3.make_tuple函数:用来生成tuple对象,用初始值的类型推断tuple类型
auto itme=make_tuple("string",3,20.01);//item的类型为tuple<const char*,int,double>
访问tuple的成员
1.get标准库模板:为了使用get获取tuple的成员,我们必须指定一个 显示模板实参(在<>里,<>里面的值必须是 常量表达式),表示访问第几个成员。还需要传递给get一个tuple对象,返回指定成员的 引用。
get(m):m如果是一个左值,该表达式返回左值引用,否则是一个右值引用
auto itme = make_tuple("string", 3, 20.01);auto book = get<1>(itme);//返回tuple对象item的第二个成员,从0开始计数
2.类模板tuple_size:查询tuple成员数量。使用tuple_size需要知道tuple对象类型(确定一个对象类型使用 decltyple),tuple_size有一个public static的数据成员value,表示给定tuple中的成员数量。
auto itme = make_tuple("string", 3, 20.01);auto sz = tuple_size<decltype(itme)>::value;//sz为3
3.类模板tuple_element:查询tuple成员的类型。tuple_element接受一个索引(从0开始)和一个tuple对象类型。tuple_element有一个public的成员type,表示给定tuple类型中指定成员的类型
auto itme = make_tuple("string", 3, 20.01);tuple_element<1, decltype(itme)>::type ctype;//ctype的类型为int
关系和相等运算符
条件:只有2个tuple具有相同数量的成员,才可以比较。比较时,每对成员必须是合法的,简单来说就是2个tuple成员类型应该相同。
高级用法:从函数返回多个值。由于tuple定义了<和==运算符,因此还可以将tuple序列传递给算法,并且可以在无序容器中将tuple作为关键字类型。
- Object-C--->Swift之(一)元组(tuple)类型
- System.Tuple类型
- C++中tuple类型
- List和Tuple类型
- c++ tuple类型
- C#Tuple的用法
- Boost C++: 数据结构---tuple
- C#Tuple的用法
- [C++]tuple简介
- Python(List和Tuple类型)
- List tuple 类型转成数组
- c++ tuple类型用法介绍
- c++ 11 之 tuple类型
- 多参数返回类型_自定义tuple
- C#的元组Tuple类型
- boost.tuple 类型 容器相关的
- python内置类型(list,dictionary, tuple , string, )
- 3.2.1元组类型(tuple)
- Linux 下wifi 驱动开发(二)—— WiFi模块浅析
- 【LeetCode】75. Sort Colors解法及注释
- jQuery validate 插件详解 转载
- dapper 的学习
- Qt5.2.0配置sdk
- c++ tuple类型
- 自定义view的measureSpec是谁的mode和size
- 阅读STL源码剖析笔记 —— vector
- 1012. The Best Rank
- 2-SAT题集
- java--连接数据库--mysql--介绍
- ImageView 的 src 属性
- C语言赋值类型的转换
- 二叉树相关练习题(C++)