练习6.27:编写一个函数,它的参数是initializer_list <int>
类型的对象,函数的功能是计算计算列表中所有元素的和。
练习6.28:在error_msg函数的第二个版本中包含ErrCode类型的参数,其中循环内的elem是什么类型。
答:const string 类型
练习6.29:在范围for循环使用initalizer_list对象时,应该将循环控制变量声明成引用类型吗,为什么?
答:应该将循环变量声明为应用类型,将控制变量和initalizer_list对象进行绑定,尽管进行绑定,控制变量定义为const引用类型,因此不能对initalizer_list对象进行修改。
练习6.27
/*
*练习6.27
*2015/6/15
*问题描述:练习6.27:编写一个函数,它的参数是initializer_list <int> 类型的对象,函数的功能是计算计算列表中所有元素的和。
*功能:可变参数的列表
*作者:Nick Feng
*邮箱:nickgreen23@163.com
*
*/
#include <iostream>
#include <initializer_list>
using namespace std;
void sum(initializer_list<int> li)
{
auto s = 0;
for (auto beg = li.begin(); beg != li.end(); ++beg)
s = s + *beg;
cout << s << endl;
}
int main()
{
initializer_list<int> li{1,2,3,4,5,6,7,8,9,10};
cout << "The result is: " << endl;
sum(li);
return 0;
}