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

“深入浅出”系列之C++:(20)C++17

C++17的新拓展

并行算法:

C++17引入了并行STL算法,允许使用多个线程并行处理元素,提高了在多核系统上的性能。

示例代码:std::sort(std::execution::par, v.begin(), v.end());

类模板参数推导(CTAD):

C++17允许编译器从类参数中自动推导出模板参数,使得模板的使用更加简便。

示例代码:template <typename T> void foo(T t) { /* ... */ } int main() { foo(42); // 编译器推导出T的类型为int }

std::optional和std::variant:

std::optional表示一个可能存在也可能不存在的值。

std::variant代表一个类型安全的联合,可以保存不同类型的值。

示例代码:std::optional<int> opt = 42; std::variant<int, double> var = 3.14;

折叠表达式:

折叠表达式提供了一种简洁的方式,用于对参数包执行二元操作,如求和、乘法等。

示例代码:template <typename T, typename ... Args> T sum(T first, Args... args) { return first + ... + args; }

结构化绑定:

结构化绑定允许将对象分解成其构成元素,类似于元组拆包。

示例代码:std::tuple<int, std::string, double> t(42, "hello", 3.14); auto [i, s, d] = t; // i = 42, s = "hello", d = 3.14

模板模板参数:

C++17允许模板接受另一个模板作为参数。

示例代码:template<template<class...> typename bob> struct foo { /* ... */ };

内联变量:

C++17允许在类的定义内部定义变量为内联的,有助于减小二进制大小并提高性能。

If Initializers:

C++17中的If初始化器允许在if语句中直接初始化变量,使代码更加紧凑。

示例代码:if (bool condition = /* some condition */) { int x = 42; } else { int x = 24; }

相关文章:

“深入浅出”系列之C++:(20)C++17

C17的新拓展 并行算法&#xff1a; C17引入了并行STL算法&#xff0c;允许使用多个线程并行处理元素&#xff0c;提高了在多核系统上的性能。 示例代码&#xff1a;std::sort(std::execution::par, v.begin(), v.end()); 类模板参数推导&#xff08;CTAD&#xff09;&#…...

.net一些知识点5

1.dot Net带out的参数如何使用 string name;//假设这个参数带out TestMethod(1,out name);//一定要有out 方法体中&#xff0c;一定要有out参数的赋值&#xff0c;并且能输出 2.参数的传递方式有哪些 a.值传递 b.引用传递 ref c.输出传递 out 3.设计模式知道哪些 3.us…...

(七)QT——消息事件机制&绘图&文件

目录 前言 消息事件机制 (Event System) 绘图 (Graphics & Drawing) 绘图设备 Qt 提供的主要绘图设备 Qt 主要绘图设备的特点 各个绘图设备的详细介绍 文件处理 (File Handling) 总结 前言 QT 是一个非常强大的图形用户界面&#xff08;GUI&#xff09;开发框架&…...

【虚幻引擎UE】AOI算法介绍与实现案例

【虚幻引擎UE】AOI算法介绍与实现 一、AOI算法介绍AOI算法的典型应用场景二、AOI相关算法1. 边界框法(Bounding Box Method)2. 动态AOI算法3. 布尔运算(Boolean Operations)4. 四叉树(Quadtree)5. R树(R-Tree)6. 圆形AOI算法7. 网格分割(Grid Partitioning)8. 多边形…...

python学opencv|读取图像(六十)先后使用cv2.erode()函数和cv2.dilate()函数实现图像处理

【1】引言 前序学习进程中&#xff0c;先后了解了使用cv2.erode()函数和cv2.dilate()函数实现图像腐蚀和膨胀处理的效果&#xff0c;相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;五十八&#xff09;使用cv2.erode()函数实现图像腐蚀处理-CSDN博客 pytho…...

AI能帮谷歌SEO做什么?

现在没用过AI写内容的人&#xff0c;应该不多了&#xff0c;用ChatGPT写文章&#xff0c;用MidJourney画图&#xff0c;用各种工具做调研&#xff0c;AI已经成为SEO玩家的“标配”。但AI到底能帮SEO做到什么&#xff1f;省钱&#xff1f;省时间&#xff1f;还是更重要的东西&am…...

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现 目录 SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来&#xff08;优…...

【机器学习】数据预处理之数据归一化

数据预处理之数据归一化 一、摘要二、数据归一化概念三、数据归一化实现方法3.1 最值归一化方法3.2 均值方差归一化方法 一、摘要 本文主要讲述了数据归一化&#xff08;Feature Scaling&#xff09;的重要性及其方法。首先通过肿瘤大小和发现时间的例子&#xff0c;说明了不同…...

【专题】2024-2025人工智能代理深度剖析:GenAI 前沿、LangChain 现状及演进影响与发展趋势报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p39630 在科技飞速发展的当下&#xff0c;人工智能代理正经历着深刻的变革&#xff0c;其能力演变已然成为重塑各行业格局的关键力量。从早期简单的规则执行&#xff0c;到如今复杂的自主决策与多智能体协作&#xff0c;人工智能代理…...

非递减子序列(力扣491)

这道题的难点依旧是去重&#xff0c;但是与之前做过的子集类问题的区别就是&#xff0c;这里是求子序列&#xff0c;意味着我们不能先给数组中的元素排序。因为子序列中的元素的相对位置跟原数组中的相对位置是一样的&#xff0c;如果我们改变数组中元素的顺序&#xff0c;子序…...

网站快速收录策略:提升爬虫抓取效率

本文转自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/102.html 要实现网站快速收录并提升爬虫抓取效率&#xff0c;可以从以下几个方面入手&#xff1a; 一、优化网站结构与内容 清晰的网站结构 设计简洁明了的网站导航&#xff0c;确保爬虫…...

系统思考—自我超越

“人们往往认为是个人的能力限制了他们&#xff0c;但事实上&#xff0c;是组织的结构和惯性思维限制了他们的潜力。”—彼得圣吉 最近和一家行业隐形冠军交流&#xff0c;他们已经是领域第一&#xff0c;老板却依然要求&#xff1a;核心团队都要自我超越&#xff0c;攻坚克难…...

苍穹外卖-菜品分页查询

3. 菜品分页查询 3.1 需求分析和设计 3.1.1 产品原型 系统中的菜品数据很多的时候&#xff0c;如果在一个页面中全部展示出来会显得比较乱&#xff0c;不便于查看&#xff0c;所以一般的系统中都会以分页的方式来展示列表数据。 菜品分页原型&#xff1a; 在菜品列表展示时…...

子集II(力扣90)

这道题与子集(力扣78)-CSDN博客 的区别就在于集合中的元素会重复&#xff0c;那么还按照之前的代码来操作就会得到重复的子集&#xff0c;因此这道题的重点就在于去重。需要注意的是&#xff0c;这里的去重指的是在同一层递归中&#xff0c;而在往下递归的子集中可以取重复的元…...

user、assistant、system三大角色在大语言模型中的作用(通俗解释)

1 概述 在大语言模型中&#xff0c;通常涉及到三种角色&#xff1a;用户&#xff08;user&#xff09;、助手&#xff08;assistant&#xff09;和系统&#xff08;system&#xff09;。简单来说&#xff0c;和大模型对话其实是三个人的电影。 2 角色定义 2.1 系统&#xf…...

LeetCode 3444.使数组包含目标值倍数的最小增量

给你两个数组 nums 和 target 。 在一次操作中&#xff0c;你可以将 nums 中的任意一个元素递增 1 。 返回要使 target 中的每个元素在 nums 中 至少 存在一个倍数所需的 最少操作次数 。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3], target [4] 输出&#xff1a…...

2月9日星期日今日早报简报微语报早读

2月9日星期日&#xff0c;农历正月十二&#xff0c;早报#微语早读。 1、2025WTT新加坡大满贯&#xff1a;王楚钦林诗栋获得男双冠军&#xff1b; 2、海南万宁快查快处一起缺斤短两案件&#xff1a;拟罚款5万元&#xff0c;责令停业3个月&#xff1b; 3、四川宜宾市筠连县山体…...

MOSSE目标跟踪算法详解

1. 引言 MOSSE算法&#xff08;Multi-Object Spectral Tracking with Energy Regularization&#xff09;是多目标跟踪领域的一座里程碑式成果&#xff0c;被认为是开创性的工作&#xff0c;为后续研究奠定了重要基础。该算法通过创新性地结合频域特征分析与能量正则化方法&am…...

生成式聊天机器人 -- 基于Pytorch + Global Attention + 双向 GRU 实现的SeqToSeq模型 -- 下

生成式聊天机器人 -- 基于Pytorch Global Attention 双向 GRU 实现的SeqToSeq模型 -- 下 训练Masked 损失单次训练过程迭代训练过程 测试贪心解码(Greedy decoding)算法实现对话函数 训练和测试模型完整代码 生成式聊天机器人 – 基于Pytorch Global Attention 双向 GRU 实…...

本地部署的DeepSeek-R1-32B与DeepSeek-R1-7B模型效果对比

本地部署的DeepSeek-R1-32B与DeepSeek-R1-7B模型效果对比 在当今人工智能快速发展的时代,大语言模型(Large Language Model, LLM)的应用场景日益广泛。无论是企业级应用还是个人开发,本地部署大语言模型已经成为一种趋势。DeepSeek-R1-32B和DeepSeek-R1-7B作为DeepSeek系列…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...