template<typename ... Args>可变参数模板的解释和使用
template<typename … Args>:可变参数模板的解释和使用
template<typename … Args>是变参模板的使用
用之前先了解普通模板如何使用
#include <iostream>
using namespace std;
// 函数模板
// 交换两个整数型
void swapInt(int &a,int &b)
{
int temp = a;
a = b;
b = temp;
}
// 交换两个浮点型
void swapDouble(double& a, double& b)
{
double temp = a;
a = b;
b = temp;
}
void test01()
{
int a = 10;
int b = 20;
swapInt(a, b);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
double c = 10.1;
double d = 20.1;
swapDouble(c, d);
cout << "c = " << c << endl;
cout << "d = " << d << endl;
}
// 实例:
//函数模板
template<typename T> //声明一个模板,告诉编译器后面代码中紧跟着的T不要报错,T是一个通用数据类型
void mySwap(T &a,T&b)
{
T temp = a;
a = b;
b = temp;
}
void test02()
{
int a = 10;
int b = 20;
//利用函数模板交换
//两种方式使用函数模板
//1、自动类型推导
mySwap(a, b);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
double c = 10.1;
double d = 20.1;
//2、显示指定类型
mySwap<double>(c, d);
cout << "c = " << c << endl;
cout << "d = " << d << endl;
}
int main()
{
test01();
test02();
return 0;
}
示例:
#include <iostream>
#include <optional>
template<typename T>
bool isEqual(T a, T b) {
return a == b;
}
template<typename T, typename... Args> // Args是一个模板参数包,包就是0-多个的意思,表示0或多个模板类型参数
bool isEqual(T a, T b, Args... args) { // args是一个参数包,包就是0-多个的意思,表示0或多个参数
return a == b && isEqual(args...);
}
int main()
{
// 编译器会推断包中的参数的数目,写多少不同的参数个数和类型,编译器会实例化出多少个不同的版本
if (isEqual(1, 1, 2, 2, 3, 3, 4, 4))
{
std::cout << "OK" ;
}
}
https://www.bilibili.com/video/BV1mY411T76u/?spm_id_from=333.337.search-card.all.click&vd_source=d393a944eac7e6a89698b228a5a6749e
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggfkfj
系列文章
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13