C++ tuple模板类使用体验

  • make_tuple
  • get
  • tie

tuple类可以说是一种特殊的pair类型,其内部可以最大包含10个左右不同类型的成员(pair只能包含两个)
使用tuple需要包含头文件
对应std::make_pair,tuple也有对应的std::make_tuple模板函数用于创建特定类型的tuple对象
tuple主要有如下常用的操作

make_tuple

make_tuple用于创建一个指定类型的tuple对象,例如std::make_tuple<int, float, std::string>

get

get函数是一个模板函数,用法是get<N(0~10)>(tuple类型对象),模板参数是一个下标索引,标识想要获取tuple对象中的第几个成员。
另外,由于get是一个模板函数,因此无法使用for循环调用get来获取tuple类型对象中的每一个成员(因为需要编译期就确定模板参数,for的循环下标在编译期无法确定)

tie

tie用于将一些变量临时绑定称为一个tuple对象,即tuple<type1&, type2&,…> obj = tie(type1 obj1, type2 ,…);

下面这个例子说明了上面三个tuple操作的使用:

#include <iostream>
#include <tuple>
#include <string>using namespace std;int main(int argc, void* argv[])
{tuple<int, string> studentInfo = make_tuple(3, "lcb");cout<<"student number is:"<<get<0>(studentInfo)<<", name is:"<<get<1>(studentInfo)<<endl;cout<<"tuple size is:"<<tuple_size<decltype(studentInfo)>::value<<endl;int randomInt = 22;string randomStr = "fuXk";float randomFloat = 0.112;tuple<int, string, float> tieObject = tie(randomInt, randomStr, randomFloat);cout<<"tie object:"<<get<0>(tieObject)<<","<<get<1>(tieObject)<<","<<get<2>(tieObject)<<endl;getchar();
}

C++ tuple模板类使用体验相关推荐

  1. C++代码片段(四)萃取模板类的模板参数类型

    例如有类型 Test<int, double, std::string> 可以萃取出模板参数分别是 int, double, std::string 方法如下 #include <t ...

  2. c++ array 模板类使用

    目录 1.array模板类的定义 (1)array模板类的声明 (2)容器属性 (3)array模板类的说明 (4)array模板类头文件 2.array模板类的使用 (1)Iterators (2) ...

  3. c++ array模板类使用

    目录 1.array模板类的定义 (1)array模板类的声明 (2)容器属性 (3)array模板类的说明 (4)array模板类头文件 2.array模板类的使用 (1)Iterators (2) ...

  4. Eigen(1):Matrix模板类

    Matrix是一个模板类,利用模板类可以定义矩阵类. 矩阵类模板: 1Matrix类有6个模板参数,只需要了解前3个就好了. Matrix<typename Scalar, int RowsAt ...

  5. TermCriteria模板类

    学习写vo过程中遇到的 类功能:模板类,作为迭代算法的终止条件. 构造函数: TermCriteria(int type,int maxCount,double epsilon); 参数说明: typ ...

  6. Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用

    写C++难免会遇到模板问题,如果要针对一个模板类进行测试,似乎之前博文中介绍的方式只能傻乎乎的一个一个特化类型后再进行测试.其实GTest提供了两种测试模板类的方法,本文我们将介绍方法的使用,并分析其 ...

  7. OpenCV中的TermCriteria模板类

    2019独角兽企业重金招聘Python工程师标准>>> TermCriteria模板类,取代了之前的CvTermCriteria,这个类是作为迭代算法的终止条件的,这个类在参考手册里 ...

  8. C++编程进阶7(何时使用成员函数模板,模板类的实参推断与类型转换、继承与数组)

    二十六.何时使用成员函数模板 关于成员函数模板见https://blog.csdn.net/Master_Cui/article/details/111824152 成员函数模板主要用来兼容不同类型的 ...

  9. C++知识点61——typename与class、模板编程与继承、模板类和友元、类模板与static成员

    一.typename与class的异同 1.啥时候既可以使用typename,又可以使用class? 当表示模板参数的时候,二者没有区别 2.啥时候只能使用typename,不能使用class? 当模 ...

  10. C++知识点56——类模板(1、模板类的介绍)

    一.类模板 和函数模板一样,类模板也得通过template关键字来声明和定义,C++标准库中有很多容器都是类模板 示例 template <typename T> class mystac ...

最新文章

  1. BZOJ 2159 「国家集训队」Crash 的文明世界(第二类斯特林数,换根DP)【BZOJ计划】
  2. CodeSmith(9)访问数据库多个表
  3. 一场由过滤器Filter引发的血案
  4. postgresql导入mysql_【原创】MySQL和PostgreSQL 导入数据对比
  5. F - 娜娜梦游仙境系列——多民族王国
  6. 没有活动混音器设备可用的解决方法
  7. paip.提升用户体验--提升java的热部署热更新能力
  8. 重学java基础第十一课:基本的dos命令
  9. 剑指Offer - 面试题53 - I. 在排序数组中查找数字 I(二分查找的变形版本)
  10. 华为上机试题 c语言,华为上机考试题库2017 2017年全国计算机等级考试C语言上机考试题库 -1-20套.doc...
  11. 30 行代码实现蚂蚁森林自动“偷”能量
  12. IOS 获取软件版本号的方法
  13. 有限体积法(2)——二维、三维扩散方程的离散推导
  14. 5G和车联网的本质联系
  15. chrome tv版_软件推荐TV版APP:影迷大院1.0TV纯净版
  16. 【王卓】数据结构与算法图(九)
  17. 《高性能网站建设进阶指南》
  18. XP系统70个小技巧
  19. Computer for fun
  20. 《控制工程基础》参考复习题及答案

热门文章

  1. Ubuntu系统安装chrony时间同步服务(局域网集群内同步)
  2. 如何0元撸个iPhone12?
  3. python 数字炸弹
  4. 电脑开机无法进入linux,[操作系统]Linux开机无法启动时的常见现象
  5. Chapter 1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时多少千米为单位的平均速度值。(注意,1英里等于1.6千米。)
  6. EasyNLP开源|中文NLP+大模型落地,EasyNLP is all you need
  7. 室内设计怎么体现出户主的风格
  8. 转 OC 一些奇葩的问题 但解决方法却让你看后要吐血
  9. 微软是如何使用TFS的?
  10. a标签点击事件_JavaScript 中常见HTML事件