最近在学习侯捷老师的视频,其中有一个用initializer_list设计的一个打印函数,其中的参数数量可以不固定,分享给大家:
#include <iostream>
void print(std::initializer_list<int> vals){
for(auto p = vals.begin(); p != vals.end(); ++p){
std::cout << *p << std::endl;
}
}
int main()
{
print({1,2,3,4,5,6,7});
return 0;
}
执行结果:
值得注意的是,在给print传递参数时,需要使用{ }包裹起来
当然这个函数的缺点就是只能打印同一种类型的变量,那么有没有可以打印不同类型且个数也不同的方法呢?
答案是有的,那就是利用可变参数模板来实现,详细请看:
一个万用的C++的print函数-利用可变参数模板
https://blog.csdn.net/qq_35487973/article/details/121532038