C++tuple快速而随意的数据结构

2023-11-02

初始化

	//<学号,姓名,年龄>
	tuple<unsigned, string, unsigned> t1; //t1 = (0, "", 0)
	tuple<unsigned, string, unsigned> t2(1, "张三", 18); //t2 = (1, "张三", 18)
	auto t3 = make_tuple(2, "李四", 21); //t3 = (2, "李四", 21)

其他功能

关系运算符

	bool s1 = (t2 == t1); //s1 = false
	bool s2 = (t2 != t1); //s2 = true
	bool s3 = (t2 < t1); //s3 = false
	bool s4 = (t2 > t1); //s4 = true

随机访问;尖括号的值必须是常量表达式;传入的值是左值,返回左值引用,否则,返回右值引用。

	auto id = get<0>(t2); //id = 1
	auto name = get<1>(t2); //name = "张三"
	auto age = get<2>(t2); //age = 18

重命名t2的类型,两种方法,前者为C++11新规

	//using type = decltype(t2);
	typedef tuple<unsigned, string, unsigned> type;

获取成员数量

	size_t s5 = tuple_size<type>::value; //s5 = 3

获取某个成员的类型

	tuple_element<1, type>::type name2 = get<1>(t2); //name2 = "张三"

详细内容请看C++Primer第17章 17.1 部分
下载C++Primer第五版

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++tuple快速而随意的数据结构 的相关文章

  • 如果异常保存在 std::exception_ptr 中,那么在 catch 语句之外使用异常是否安全?

    我有一个std exception ptr其中有一个例外 我要调用std rethrow exception要获取实际的异常 catch 语句之后的异常是否有效 我的猜测是 因为我仍然持有std exception ptr它仍然有效 参见示
  • 为什么在从同一解决方案引用另一个项目时会出现 FileNotFound 异常?

    我正在学习如何使用 NUnit 我的解决方案中有我的主项目 并在同一解决方案中创建了一个单独的项目 该项目将保存我的单元测试 并具有自己的命名空间 从该项目中 我添加对主项目的引用并添加 using MainProjectNamespace
  • 运行 C# exe 文件

    复制 为什么我的 NET 应用程序在从网络驱动器运行时会崩溃 https stackoverflow com questions 148879 why does my net application crash when run from
  • 如何获取 C# PriorityQueue 元素的优先级

    我正在初始化一个存储 XY 坐标的优先级队列 根据距原点的欧几里得距离确定优先级 我创建了一个自定义Comparer这使得它作为最大堆运行 PriorityQueue
  • 公共领域有哪些替代方案?

    我正在用 java 编写一个游戏 正如问题标题建议的那样 我在类中使用公共字段 暂且 据我所知 公共领域很糟糕 我有一些理解其中的原因 但如果有人能澄清为什么你不应该使用它们 那将不胜感激 问题是 从我所看到的来看 这似乎是合乎逻辑的 是使
  • 析构函数、dispose 和 Finalize 方法之间的区别

    我正在研究垃圾收集器在 C 中的工作原理 我对使用感到困惑Destructor Dispose and Finalize方法 根据我的研究和理解 在我的类中拥有析构函数方法将告诉垃圾收集器以析构函数方法中提到的方式执行垃圾收集 该方法不能在
  • 如何使用 C# 调用 REST API?

    这是我到目前为止的代码 public class Class1 private const string URL https sub domain com objects json api key 123 private const str
  • 如何使用 DesignData 帮助开发 Metro 应用程序?

    我一直在 Windows Phone 应用程序中愉快地使用 DesignData 我希望使用它来帮助在 VS2012 Blend for VS 中的 Metro 风格应用程序中可视化设计 我已经尝试过希望显而易见的方法
  • const_iterators 更快吗?

    我们的编码指南更喜欢const iterator 因为它们比正常的要快一点iterator 当您使用时 编译器似乎会优化代码const iterator 这真的正确吗 如果是的话 内部到底发生了什么使得const iterator快点 编辑
  • 使用 INF 文件 C++ 以编程方式安装驱动程序

    这里有人可以告诉我如何安装第 3 方设备驱动程序吗 如果提供了所有必需的文件 即 inf 文件 sys 等 则以编程方式进行 这 该解决方案应运行的最低操作系统是Windows2000 我尝试复制 inf文件放入Win文件夹 INF文件夹和
  • 加载配置文件时发生错误:访问路径 c:\Program Files (x86)\... 被拒绝

    我有一个在 Windows 7 上使用 Visual Studio 2010 中的安装程序部署的应用程序 该程序在 Windows 7 和 XP 上部署并运行良好 但当我在 Windows 8 系统上部署它时 出现有关访问配置文件的错误 该
  • C++ fill() 与 uninitialized_fill()

    您好 我是初学者 我想知道容器的 fill 和 uninitialized fill 之间的区别 我在谷歌上进行了快速搜索 但没有得到很好的答案 有人可以帮助我吗 fill 将值 使用赋值运算符 分配给已构造的对象 uninitialize
  • 将数字 n 拆分为 k 个不同数字的总和

    我有一个数字 n 我必须将它分成 k 个数字 使得所有 k 个数字都是不同的 k 个数字的总和等于 n 并且 k 最大 例如 如果 n 为 9 则答案应为 1 2 6 如果 n 为 15 则答案应为 1 2 3 4 5 这就是我尝试过的 v
  • Bool类型返回规则

    我使用 dapper ORM 所以我使用两个规则Query
  • C++20 views::join 在生成的嵌套范围::single_view 上进入无限循环

    我正在使用 GCC 实现 v10 2 和 v11 来处理 C 20 范围 测试的行为std views join https en cppreference com w cpp ranges join view 我尝试使用生成嵌套视图sin
  • 将数组显式衰减为指针

    最简洁 最惯用的方式是什么明确地将数组衰减为指针 例如 考虑您需要能够指导 SFINAE 或明确过载的情况 template
  • 如何将此 Boost ASIO 示例应用到我的应用程序中

    我已经阅读了很多 ASIO 示例 但我仍然对如何在我的应用程序中使用它们感到困惑 基本上 我的服务器端需要接受超过100个连接 客户端 这部分是通过使用线程池 通常每个CPU核心2 4个线程 来完成的 为简单起见 我们假设只有一个连接 为了
  • 将 .NET 类库(主要定义 CRUD 操作)公开为服务

    公开现有内容的最佳 有效和最快的方法是什么 类 图书馆 主要定义 CRUD 操作 作为service 周转基金服务 or WCF数据服务 以便它可以与银光 or Ajax 在那儿tools 代码生成器 RAD 工具 哪些可以支持这个 预先感
  • int 类型的构造函数

    考虑到成本 这些情况是否相同 case 1 int a 5 case 2 int a 5 case 3 int a a 5 这三种语法是不同的 请耐心等待 我使用用户定义类型而不是 int 稍后我将回到 int T a 5 Direct i
  • 返回右值 - 这段代码有什么问题? [复制]

    这个问题在这里已经有答案了 我遇到了以下代码片段 std string test std string m Hello return std move m int main std string m test 我知道上面的代码是不正确且不安

随机推荐

  • logback--基础--03--配置--logger

    logback 基础 03 配置 logger 代码位置 https gitee com DanShenGuiZu learnDemo tree master logback learn 1 设置logger 1 1 lt root gt
  • 整理6个超好用的在线编辑器!

    随着 Web 开发对图像可扩展性 响应性 交互性和可编程性的需求增加 SVG 图形成为最适合 Web 开发的图像格式之一 它因文件小 可压缩性强并且无论如何放大或缩小 图像都不会失真而受到欢迎 然而 为了编辑 SVG 图像 需要使用 SVG
  • linux下显示隐藏文件

    linux下显示隐藏文件有两种可能 显示所有文件 包括隐藏文件 仅显示隐藏文件 显示所有文件 包含隐藏文件 ls A 只显示隐藏文件 l 或者 ls d
  • react + typescript解决TS2339:Property ‘..‘ does not exist on type ‘Readonly<{}>‘错误

    说来比较惭愧 已经两个多月没有更新博客了 由于手头上的项目快进入收尾阶段了 一直没有时间与欲望更新博客 前几天boss又下发了一个新的项目 采用taro react reflux typescript taroUI做一个微信小程序 说多了都
  • MS Chart 控件学习(二) 数据绑定

    Chart的数据绑定非常灵活支持多种形式的数据绑定 现在主要介绍几种常见的 一 关于数据源 可以在图表的设计界面 在属性设置窗口中的Series属性下的Points中添加需要的数据 可以在图表的设计界面中 在属性中绑定一个数据源 可以在后台
  • Spring框架基础学习

    Spring是什么 Spring是分层的Java SE EE应用 full stack轻量级开源框架 以IoC Inverse Of Control 反转控制 和AOP Aspect Oriented Programming 面向切面编程
  • Spring Boot框架基础概览

    基本概述 Spring Boot是所有基于Spring开发的项目的起点 Spring Boot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置文件 它采用了 习惯优于配置 的理念 就像Maven整合了所有的JAR包
  • Ubuntu下的进程管理和启动项管理工具

    sudo apt get install bum
  • tkinter创建真正的嵌套子窗口

    tkinter创建真正的嵌套子窗口 引言 获取窗口句柄 方法一 方法二 创造嵌入窗口 嵌套在组件中 一些问题 一个简单的例子 2022 7 22问题解决 结语 引言 在我之前的这篇纯tkinter创建嵌套子窗口的文章中 只提及了3种方法 原
  • 选择排序 简单选择排序 直接选择排序的区别

    选择排序 图示过程如下 区分 直接选择排序每次遇到n 1 gt n 的时候就要发生交换 简单选择排序则只是记录下较大那个元素的位置 这样一轮过后这个记录变身本轮所要选取的最大值 而每轮需要确定的位置已由外层循环确定 只需将最大元素位置记录所
  • face alignment (人脸对齐)

    face alignment 是计算机视觉的一个热点研究问题 人脸对齐作为人脸识别系统中的一个重要组成部分 人脸对齐的性能在人脸识别系统起着举足轻重的作用 人脸对齐的目的是定位出人脸面部关键点的位置 这些关键点通常是人脸中具有语义的器官 比
  • 【人工智能】推荐系统算法

    推荐系统算法详解 一 推荐系统详解 1 基于人口统计学的推荐算法 基于人口统计学的推荐机制 Demographic based Recommendation 是一种最易于实现的推荐方法 它只是简单的根据系统用户的基本信息发现用户的相关程度
  • 第一次用上 Android Studio 2.3 过程及错误解决

    因为要开发Android5 0的缘故 抛弃了eclipse转到了Android Studio 第一次使用就是遇到了许多问题 终于是解决问题了 特意写一篇博文给各位要准备从eclipse转到Android Studio 由于之前使用eclip
  • Archiving With Multiple Destinations Fails With ORA-16040

    fact Oracle Server Enterprise Edition 9 0 fact Oracle Server Enterprise Edition 8 1 symptom Archiving fails symptom ORA
  • 【开源】团队版 ChatGPT Web 应用,多用户,免登录

    Muchat 团队版 ChatGPT Web 应用 多用户 免登录 适合公司 组织或小团体内部使用 有人乍一看目录觉得只是发布了个 exe 但实际代码在各个子仓库中 本仓库只是一个入口 特性 无需登录 输入卡密即可使用 支持匿名试用 可设置
  • Unity中烘焙光照,同mesh同uv的模型烘焙光照时共用一张光照贴图

    我们再开发中 经常会遇到需要烘焙场景光照的情况 但是尴尬的是 一个场景中你好几个物体用的都是一个贴图 但是不同mesh 或者是相同mesh 你都会如下图 多出一张光照贴图 正常unity开发的解决办法是合并mesh 来降低光照贴图数量 但是
  • vnc 连接不上,出现Warning: zhouziqi:1 is taken because of /tmp/.X11-unix/X1

    楼主不知道怎么回事 突然就边不上VNC了 我就打算重新启动服务 发现服务启不来 我用 journalctl xe命令出现下面的东西 Apr 24 21 30 24 zhouziqi runuser 23390 pam unix runuse
  • ScriptManager的用法

    脚本管理控件 ScriptManger 是ASP NET AJAX中非常重要的控件 通过使用ScriptManger能够进行整个页面的局部更新的管理 ScriptManger用来处理页面上局部更新 同时生成相关的代理脚本以便能够通过Java
  • 怎么画因果图?因果图绘图步骤详解

    因果图设计法 因果图法是一种利用图解法分析输人的各种组合情况的测试方法 它考虑了输入条件的各种组合及输入条件之间的相互制约关系 并考虑输出情况 例如 某一软件要求输人地址 具体到市区 如 北京 昌平区 天津 南开区 其中第2个输人受到第1个
  • C++tuple快速而随意的数据结构

    初始化 lt 学号 姓名 年龄 gt tuple