• 如果函数的实参数量未知,但全部实参类型相同,可使用标准库类型initializer_list的实参,表示某种特定类型的值的数组。
1
2
3
4
5
6
7
// 常用操作
initializer_list<string> lst{ "aaa", "bbb", "ccc" }; // 列表中的元素是const
initializer_list<string> lst_2(lst); // lst_2 = lst; // 拷贝或赋值不会拷贝原列表中的元素。拷贝后原始列表和副本共享元素。

lst.size(); // 列表中元素个数
lst.begin(); // 返迭代器
lst.end(); // 返尾后迭代器
1
2
3
4
5
6
7
8
9
10
11
void test(int index, initializer_list<string>lst) {
cout << index << endl;
for (auto itor = lst.begin(); itor != lst.end(); ++itor)
cout << *itor << endl;
}


int main() {
test(1, { "aaa", "bbb", "ccc" });
return 0;
}
  • 省略符形参

    仅C++与C对接时使用,通常不推荐使用

    void fun(param, …);