initializer_list是一种标准类型,用于表示某种特定类型的值的数组,initializer_list类型的头文件
#include<initializer_list>
和vector不同,initializer_list中的元素永远是常量,我们无法改变其对象中的元素的值。
1.initializer_list的初始化方式
**直接初始化空list**
initializer_list<string> ls;
initializer_list<int>li;
**初始化时赋值**
initializer_list<string> str{ "hello","my","dear" };
initializer_list<int> str{ 1,2,3,4 };
2.initializer_list常用操作
initializer_list的遍历
//和vector相同,可用迭代器来遍历
initializer_list<string> str{ "hello","my","dear" };
for (auto it = str.begin(); it != str.end(); it++)
{
cout << *it << endl;
}
3.initializer_list的使用
initializer_list可以用于传递函数的参数,而函数的参数个数可以不同。
//函数参数定义为initializer类型
void show_name(initializer_list<string> list)
{
for (auto it = list.begin(); it != list.end(); it++)
{
cout << *it << endl;
}
}
//在传递参数时可以将多个参数用“{a,b....}”的形式传入,参数的个数可以改变。
show_name({"Mike"});
show_name({ "Mike","Bob" });