C++11 列表初始化、序列生成器 Generator

匿名 (未验证) 提交于 2019-12-03 00:25:02
int a[] = {1,3,5,7,9}; std::for_each(std::begin<int>(a), std::end<int>(a), [&](int n) {cout << n;}); //这样会把13579输出来。

二、

C++11扩大了初始化列表的适用范围,使其可用于所有内置类型和用户定义的类型。无论是初始化对象还是某些时候为对象赋新值,都可以使用这样一组由花括号括起来的初始值了。使用初始化列表时,可添加=,也可不添加。

//定义一个变量并初始化 int units_sold=0; int units_sold(0); int units_sold={0};  //列表初始化 int units_sold{0};    //列表初始化   

当初始化列表用于内置类型的变量时,这种初始化形式有一个重要特点:如果我们使用列表初始化值存在丢失信息的风险,则编译器将报错:

long double ld=3.1415926536; int a={ld},b={ld}; //错误:转换未执行,因为存在丢失信息的风险 int c(ld),d=ld;   //正确:转换执行,且确实丢失了部分值


三、

1. 问题:

2. 方案

3. 资源:





易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!