在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。