一、可变参函数
含义:能够接收非固定个数参数的函数就是可变参数函数;
initializer_list标准库类型,用于处理可变参数问题,该类型能够使用的前提条件是,所有的实参类型相同
二、initializer_list (初始化列表)
如果一个函数,它的实参数量不可预知,但是所有参数的类型相同,我们就可以使用这个initializer_list类型的形参来接收。
initializer_list 是 C++ 11中提供的新类型,也是一个类模板。
我们把initializer_list理解成某种类型值得数组。这个类模板里指定的类型模板参数就是这个数组里保存的数据的类型。
包含头文件
#include <initializer_list> 或 #include <iostream>
initializer_list<int> array; //数组,元素类型是int,空列表(空数组)
initializer_list<int> array1 = {
10, 20, 30, 40, 50 };
注意:initializer_list对象中的元素永远是常量值,不能被改变。
1. begin()、end()、size()
void Func(initializer_list<string> array)
{
/*for (auto iter = array.begin(); iter != array.end(); ++iter)
{
cout << (*iter).c_str() << " ";
}*/
for (const auto& it : array) //用引用更节省性能
{
cout << it << " ";
}
cout << endl;
cout << array.size() << endl; //打印列表中元素数量
}
int main(int argc, const char* argv[])
{