当前位置: 首页 > news >正文

C++初学者指南-5.标准库(第二部分)–特殊容器

C++初学者指南-5.标准库(第二部分)–特殊容器

pair<A , B>
包含两个相同或不同类型的值
在这里插入图片描述
tuple<A , B> C++11
包含许多相同或不同类型的值
在这里插入图片描述
optional C++17
包含一个类型为 T 的值或没有值
在这里插入图片描述
variant<A,B,C,…> C++17
包含一个类型为A、B或C的值……
在这里插入图片描述
any C++17
包含任意类型的一个值
在这里插入图片描述

幻灯片

在这里插入图片描述

  • 保存不同类型的两个值
    在这里插入图片描述
  • 可用于组合多种类型
  • 建议:具有表达式名称的结构/类通常更好
    在这里插入图片描述
    在这里插入图片描述
  • 将元组的返回类型拆分为变量
  • 方便处理多个按值返回类型
  • 在这里插入图片描述
  • 结构化绑定:auto […] =
  • 一次声明元组中的变量并赋值
  • 允许方便地处理多个按值返回类型

在这里插入图片描述
在这里插入图片描述

  • 表示可能可用的值
  • 过去:原始指针(nullptr表示不可用性)
  • 与原始指针相比,意图得到清晰表达

在这里插入图片描述
不同类型的值列表?
在这里插入图片描述

  • 可以包含T1或T2或T3的对象
  • 具有最大类型的内存占用量
    在这里插入图片描述
    在这里插入图片描述
    Product Types和Sum Types (概念来源于函数式编程,这里不展开了),简单的理解,Product Types就像C++的struct类型,成员变量是同时存在的,Sum Types就像std::variant类型,用来表示多个可选项,是同一个值。
    在这里插入图片描述
  • 可以包含任何类型的对象
  • 实际类型在运行时可更改
    在这里插入图片描述

相关内容

  • std::span / gsl::span
  • std::variant  (CopperSpice C++)
  • std::visit  (CopperSpice C++)

附上原文链接
如果文章对您有用,请随手点个赞,谢谢!^_^

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 构建并升级openssh至OpenSSH_9.8p1
  • leetcode54 螺旋矩阵
  • Python | Leetcode Python题解之第372题超级次方
  • 【MySQL】MySQL 表的增删改查(进阶)
  • Scipy||第二章 Scipy核心模块概述
  • redis 开启事务 pipeline.multi(); 需要关闭嘛?
  • 基于SSM+JSP的手机商城系统网站
  • CentOS 7上开放端口(开放链接)
  • Java IO精髓:高效块读写入技术深入解析
  • Beyond Compare忽略特定格式文本
  • 我写的全部R包和函数,持续更新中
  • 微信小游戏授权问题
  • Shader 透明相关
  • RK3568-设备树休眠唤醒
  • 【ACM出版,快录用】2024年智能医疗与可穿戴智能设备国际学术会议(SHWID 2024, 10月18-20)
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 2017年终总结、随想
  • echarts的各种常用效果展示
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • If…else
  • input实现文字超出省略号功能
  • MaxCompute访问TableStore(OTS) 数据
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • React16时代,该用什么姿势写 React ?
  • SQLServer之创建显式事务
  • 创建一个Struts2项目maven 方式
  • 精彩代码 vue.js
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 日剧·日综资源集合(建议收藏)
  • 使用Gradle第一次构建Java程序
  • 小程序开发中的那些坑
  • Spring第一个helloWorld
  • ​flutter 代码混淆
  • ​ssh免密码登录设置及问题总结
  • #pragma data_seg 共享数据区(转)
  • #stm32驱动外设模块总结w5500模块
  • %check_box% in rails :coditions={:has_many , :through}
  • (Charles)如何抓取手机http的报文
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (rabbitmq的高级特性)消息可靠性
  • (多级缓存)多级缓存
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)mysql使用Navicat 导出和导入数据库
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .net专家(张羿专栏)
  • @31省区市高考时间表来了,祝考试成功
  • [2016.7.Test1] T1 三进制异或
  • [20160807][系统设计的三次迭代]
  • [20170705]lsnrctl status LISTENER_SCAN1