C++语言之应用initializer_list实现可变参数的函数

C++编程语言之initializer_list是C++11提供的一种新类型,其定义于<initializer_list>头文件中,此头文件是工具库的一部分,用于处理参数数量可变但类型相同的情况。initializer_list提供如下操作:

initializer_list<T> lst; //默认初始化;T类型元素的空列表

initializer_list<T> lst{a, b, c, d, ...};
//lst的元素数量和初始值一样多;lst的元素是对应初始值的副本;列表中的元素是const

lst.size(); //列表中的元素数量

lst.begin(); //返回指向lst中首元素的指针

lst.end(); //返回指向lst中尾元素下一个位置的指针

C++语言之应用initializer_list实现可变参数的函数示例如下:

#include <iostream>
#include <initializer_list>
using namespace std;

int sum(initializer_list<int> il)
{
	int result = 0;

	for(initializer_list<int>::iterator it = il.begin(); it != il.end(); it++)
	{
		result = result + *it;
	}

	return result;
}

int main()
{
	cout << sum({1}) << endl;
	cout << sum({1,2}) << endl;
	cout << sum({1,2,3}) << endl;
	cout << sum({1,2,3,4}) << endl;
	cout << sum({1,2,3,4,5}) << endl;

	return 0;
}

1 thought on “C++语言之应用initializer_list实现可变参数的函数

  1. 日番谷

    可变参数函数initializer_list实现挺好用的,方便啊,比C语言的显得高大上一点。

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *