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

【C++】可变参数模板

2023年9月9日,周六下午

这个还是挺难学的,我学了好几天...

在这里我会举大量的示例程序,这样可以有一个更好的理解,

不定期更新。


目录

推荐文章:

示例程序一:拼接字符串

示例程序二:求整数和

示例程序三:输出一串整数


推荐文章:

这里有一些不错的相关文章 

Parameter pack(since C++11) - cppreference.com

Variadic function templates in C++ - GeeksforGeeks

Variadic templates in C++ - Eli Bendersky's website

在谷歌搜索“Variadic Template”就可以找到更多这样的文章

示例程序一:拼接字符串

#include <iostream>
#include <string>
using namespace std;template<typename... Args>
string concatenate(Args... args) {string result;for (const auto& arg : {args...}) {result += arg;}return result;
}int main() {cout << concatenate("Hello", " ", "world", "!") << endl; // 输出:Hello world!return 0;
}

示例程序二:求整数和

#include <iostream>
using namespace std;template<typename... Args>
int sum(Args... args){int sum=0;for(const int& arg:{args...})sum+=arg;return sum;
}int main() {cout <<sum(1,2,3,4,5,6,7,8,9,10) << endl; // 输出:55return 0;
}

示例程序三:输出一串整数

示例程序一和二是通过遍历的方式,而这个示例程序是通过递归的方式。

使用递归的方式时要注意,递归到最后时函数的参数是空的,

所以要准备额外准备好一个函数来处理这种情况。

#include <iostream>
using namespace std;void print()
{cout << "最后一个元素"<<endl;
}template <typename T, typename... Args>
void print(T first, Args... args)
{cout << first << endl;print(args...);
}int main()
{print(1, 2, 3,4,5,6,7);return 0;
}

相关文章:

【C++】可变参数模板

2023年9月9日&#xff0c;周六下午 这个还是挺难学的&#xff0c;我学了好几天... 在这里我会举大量的示例程序&#xff0c;这样可以有一个更好的理解&#xff0c; 不定期更新。 目录 推荐文章&#xff1a; 示例程序一&#xff1a;拼接字符串 示例程序二&#xff1a;求整…...

WPF Flyout风格动画消息弹出消息提示框

WPF Flyout风格动画消息弹出消息提示框 效果如图&#xff1a; XAML: <Window x:Class"你的名称控件.FlyoutNotication"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xam…...

Spring Boot 集成 Redis

Spring-data-redis 在 Spring 中整合 Redis jedis : 采用的直连&#xff0c;多个线程操作的话&#xff0c;是不安全的&#xff0c;如果想要避免不安全的&#xff0c;使用 jedis pool 连接池 lettuce : 采用netty&#xff0c;实例可以再多个线程中进行共享&#xff0c;不存在…...

Java线程之间通信方式

目录 1 线程之间的通信方式主要有以下几种2 共享变量3 锁机制4 条件变量5 信号量6 管道 1 线程之间的通信方式主要有以下几种 在实际开发时&#xff0c;一个进程中往往有很多个线程&#xff0c;大多数线程之间往往不是绝对独立的&#xff0c;比如说我们需要将A和B 两个线程的执…...

【LeetCode-中等题】367. 有效的完全平方数

文章目录 题目方法一&#xff1a;二分查找 题目 方法一&#xff1a;二分查找 找 1 - num 之间的 mid&#xff0c; 开方是整数 就找得到 mid&#xff0c; 不是整数自然找不到mid class Solution { // 二分查找 &#xff1b;找 1 - num 之间的mid 开方是整数 就找得到 不是…...

英语单词(二)

1.int:整形 2.char:字符型 3.scanner:接受输入,扫描器 4.integer:整数,整形 5.type:类型 6.string:字符串类型 7.double:双精度浮点型...

Django 用相对路径方式引用自定义模块 或 文件

Django的文件夹结构 projectName/websiteName/appName manage.py 所在路径为&#xff1a;D:/projectA/website1/manage.py views.py 所在路径为&#xff1a;D:/projectA/website1/app1/views.py D:/projectA/website1/app1/module1.py 如果要引用自定义模块&#xff0c;引用…...

企业架构LNMP学习笔记22

防盗链原理和实现。 域名A的资源文件&#xff0c;经常被域名B直接调用访问。 而用户经常访问域名B&#xff0c;看到的资源&#xff08;图片等&#xff09;以为是域名B的&#xff0c;实际则是域名A的。 但是域名A没有获得任何收益&#xff0c;却要给域名B来源的访问消耗服务器…...

uniapp和小程序设置tabBar和显示与隐藏tabBar

&#xff08;1&#xff09;设置tabBar&#xff1a; uni.setTabberItem({ }); wx.setTabberItem({ }); 属性值&#xff1a; indexnumber是tabBar 的哪一项&#xff0c;从左边算起&#xff0c;索引从0开始textstring否tab 上按钮文字iconPathstring否图片路径selectedIc…...

物联网、无线通讯

LAN&#xff1a;局域网 Local Area Network WAN&#xff1a;广域网 Wide Area Network WLAN&#xff1a;无线局域网 Wireless LAN LPWAN&#xff1a;低功耗广域网 Low Power Wide Area Network技术特点无线通信技术应用场景高功耗、高速率的远距离传输3G、4G蜂窝这类传输技术适…...

Pod和容器设计模式

为什么需要Pod 一些应用的实现是需要多个进程配合完成的&#xff0c;由于容器实际上是一个“单进程”模型&#xff0c;如果在容器里启动多个进程会存在进程管理的难题。在Kubernetes里面&#xff0c;实际上会被定义为一个拥有四个容器的Pod。 Pod相当于进程组 Kubernetes 是…...

docker系列(3) - 常用软件安装

文章目录 3. docker安装常用软件3.1 安装nginx3.2 安装redis3.3 安装mysql3.4 部署springboot程序3.4.1 编写dockerfile3.4.2 构建镜像3.4.3 启动镜像 3. docker安装常用软件 3.1 安装nginx docker pull nginx#挂载启动 docker run -it -d \ --namenginx \ --networkpub_netw…...

Apache Hive之数据查询

文章目录 版权声明数据查询环境准备基本查询准备数据select基础查询分组、聚合JOINRLIKE正则匹配UNION联合Sampling采用Virtual Columns虚拟列 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程序员或相关权利…...

OpenCV---视频操作

用摄像头捕获视频 import cv2 as cv import numpy cap cv.VideoCapture(0) while(cap.isOpened()):ret, frame cap.read() # read() 它返回两个值&#xff0c;第一个是布尔值&#xff0c;表示是否成功读取到一帧&#xff0c;第二个是帧本身。cv.imshow(Video, frame)if c…...

《TCP/IP网络编程》阅读笔记--进程间通信

目录 1--进程间通信 2--pipe()函数 3--代码实例 3-1--pipe1.c 3-2--pipe2.c 3-3--pipe3.c 3-4--保存信息的回声服务器端 1--进程间通信 为了实现进程间通信&#xff0c;使得两个不同的进程间可以交换数据&#xff0c;操作系统必须提供两个进程可以同时访问的内存空间&am…...

mysql中show status参数介绍

Uptime_since_flush_status, 2159061&#xff1a;自上次刷新状态以来的服务器运行时间&#xff08;以秒为单位&#xff09;。Uptime, 2159061&#xff1a;服务器的总运行时间&#xff08;以秒为单位&#xff09;。Threads_running, 2&#xff1a;当前正在运行的客户端线程数。T…...

Tomcat服务的部署及配置优化

文章目录 1. Tomcat的相关介绍1.1 Tomcat简介1.2 Tomcat的核心组件1.2.1 Web容器1.2.2 Servlet容器1.2.3 JSP容器 1.3 Tomcat的功能组件1.3.1 connector连接器1.3.2 container容器1.3.2.1 子容器及其相关功能 1.4 主要作用1.5 Tmocat处理请求的过程 2. Tomcata服务部署2.1 安装…...

入门力扣自学笔记279 C++ (题目编号:1123)

1123. 最深叶节点的最近公共祖先 题目&#xff1a; 给你一个有根节点 root 的二叉树&#xff0c;返回它 最深的叶节点的最近公共祖先 。 回想一下&#xff1a; 叶节点 是二叉树中没有子节点的节点树的根节点的 深度 为 0&#xff0c;如果某一节点的深度为 d&#xff0c;那它…...

【AIGC专题】Stable Diffusion 从入门到企业级实战0402

一、概述 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第02节&#xff0c; 利用Stable Diffusion ControlNet Openpose模型精准控制图像生成。上一节&#xff0c;我们介绍了《Stable Diffusion C…...

【Spring事务】Spring事务的传播机制(通俗易懂)

目录 什么是spring事务 Spring事务的传播机制 什么是spring事务 封装在数据库事务之上的一种事务处理机制。其管理方法有两种&#xff0c;分别是编程式事务以及声明式事务。一般我们使用Transactional进行声明式事务。 Spring事务的传播机制 Spring的事务传播机制种类 传播行…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

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

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

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...