在C++中,有时会遇到定义参数数量不确定的函数的情况。此时如果我们确定参数的类型是相同而个数不确定的话,可以用initializer_list来解决。
这是C++11里新加入的功能。initializer_list是一个模板类,它的使用有一点像vector,但是每一个元素都是常量,而且不能通过operator[]来访问元素,只能通过迭代器访问。
下面是示例:
#include <initializer_list>
int sumInt(std::initializer_list<int> nums)
{
int s = 0;
for (auto t = nums.begin(); t != nums.end(); t++)
s += *t;
return s;
}
int main()
{
std::cout << sumInt({ 1, 2, 3, 4, 5 }) << std::endl;
return 0;
}
可以看到,程序将输入的变量进行了求和,输出值为15。
浙公网安备 33010602011771号