概念
C++11增强了模板功能,允许模板定义中包含0到任意个模板参数,这就是可变参数模板。
用法
#include <iostream>
template<typename T>
void func(T t){
std::cout<<t<<std::endl;
}
template<typename Head,typename... Tail>
void func(Head t,Tail ...args){
func(t);
func(args...);
}
int main(){
func(1,2,3,"dd",1.2,'k');
return 0;
}
依次输出 1,2,3,“dd”,1.2,‘k’
#include <iostream>
template <typename T>
T my_max(T value) {
return value;
}
template <typename T, typename... Types>
T my_max(T value, Types... args) {
return std::max(value, my_max(args...));
}
int main(int argc, char *argv[]) {
std::cout << my_max(1, 5, 8, 4, 6) << std::endl;
return 0;
}
判断多个数的最大值
本文介绍了C++11中新增的可变参数模板功能,通过两个实例展示了如何使用可变参数模板实现递归调用的功能,分别实现了打印一系列参数值及找出多个数值中的最大值。
1383

被折叠的 条评论
为什么被折叠?



