C++ 函数的可变形参
Part 1 - initializer_list
Only C++
适用:参数类型相同,但参数个数不定
来历:C++ 标准库
使用它,需要包含头文件initializer_list
,命名空间为std
俯瞰
#include <initializer_list>
int add(initializer_list<int> nums)
{
int result = 0;
for (auto nitr = nums.begin(); nitr != nums.end(); nitr++) {
result += (*nitr);
}
return result;
}
// 调用
int main() {
// 注意:不要漏掉花括号
int r = add({
-3, 2, 5, 1});
return 0;
}
端详
#include <initializer_list>
using namespace std;
initializer_list<T> list; // 默认初始化,空列表
initializer_list<T> list{
e1, e2, e3, ...}; // 另一种初始化方式
list2 = list1; // 拷贝
list.begin(); // 列表首元素指针
list.end(); // 列表最后一个元素下一个位置的指针
list.size(