八叶一刀·无仞剑

万物流转,无中生有,有归于无

导航

初始化列表

Posted on 2016-12-09 16:17  闪之剑圣  阅读(162)  评论(0编辑  收藏  举报

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