可变参数
C++11在标准库中提供了initializer_list类,用于处理参数数量可变但类型相同的情况。使用initializer_list最常用的方式是通过大括号包围的值列表对其进行初始化:
#include<iostream>
#include<initializer_list>
using namespace std;
void showslist(initializer_list<int> m_list)
{
for (auto p :m_list)
{
cout << p << endl;
}
}
template<typename T>
void showMylist_ty(initializer_list<T> m_initialList)
{
for (auto p :m_initialList)
{
cout << p << endl;
}
cout << "------------华丽的分割线----------------" << endl;
}
void main()
{
cout << "*******升级之前*******:\n";
showslist({ 1, 2, 3, 4, 5, 6 });
cout << "------------华丽的分割线----------------"<<endl;
initializer_list<int> vlist{ 9, 8, 7, 6 };
showslist(vlist);
cout << "*******升级之后*******:\n";
showMylist_ty({ 1, 3, 4, 5 });
showMylist_ty({ "How", "are", "you", "!" });
system("pause");
}
结果: