1. 在C++98中,标准允许使用花括号{}来对数组元素进行统一的集合(列表)初始化操作,如:int buf[] = {0};int arr[] = {1,2,3,4,5,6,7,8}; 可是对于自定义的类型,却是无法这样去初始化的,比如STL标准模板库中容器,使用的频率非常之高,如vector,若要初始化其内容,则需要每次进行push_back 或使用迭代器去初始化,这是极其不便的。C++11 中,可以”列表初始化“方式来快速的初始化内置类型或STL中容器。

2.集合(列表)的初始化方式已经成为C++语言的一个基本功能,列表初始化的方式对:内置类型(int、float、double、char等)、数组、自定义的类、函数参数列表、STL标准模板库等都是有效的。

int main(int argc,char **argv)
{
int arr[] = {1,2,3,4,5,6,7,8,9,10}; //c++98编译通过 c++11编译通过
int buf[]{11,22,33,44,55,66,77}; //c++98编译失败
vector<int> _vec= {10,20,30,40,50,60}; //c++98编译失败 //c++98编译失败
map<int,std::string> _map{{1,"lxg"},{2,"the answer"},{3,"hello world."}};
return 0;
}

3. 初始化列表可以在花括号“{}”之前使用等号=,其效果与不带等号的初始化相同。如:`int a{10}` 和 `int a = {10}`。 所以,自动化变量和全局变量的初始化在C++11中被丰富了。比如可以使用以下几种方式来完成初始化操作: ① 等号“=” 加上赋值表达式(assignment_expression)。如:int a = 1+2. ② 等号“=”加上花括号{}的初始化列表。如:int b = {1+3}. ③ 圆括号式的表达式列表。如:int a(1+2). ④ 花括号{}的初始化列表。如:int a{1+3}. ③④两种方式也可以 用new操作符中。比如:`int *p = new int(2); char *c = new char{'g'};`

4. 正如2.中所描述,列表初始化方式同样也适用于自定义的类中。因为标准模板库中容器对初始化类别的支持源自于 <initializer_list> 头文件中<initializer_list 类模板的支持。因此,只需要在应用中#include <initializer_list> 头文件,同时声明一个以 initializer_list<T> 模板类为参数的构造函数。

————————————————
版权声明:本文为CSDN博主「此处不归牛顿管」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lixiaogang_theanswer/article/details/82563961

最新文章

  1. Android 小笔记
  2. Corex-M0 系统嘀嗒定时器 Systick 详解
  3. 使用composer安装项目依赖
  4. python tornado websocket 多聊天室(返回消息给部分连接者)
  5. php模式设计之 适配器模式
  6. 什么php?
  7. Unity3D WP8发布解决方案名 DefaultPackageName 修改问题
  8. Asp.Net MVC结合ExtJs gridPanel 分页和高度自适应
  9. 第四篇:SQL
  10. BottomSheetBehavior 之 java.lang.IllegalArgumentException: The view is not associated with BottomSheetBehavior
  11. karma note
  12. 简单描述RAID级别:
  13. dedecms 标签的基本用法
  14. [js高手之路]深入浅出webpack教程系列2-配置文件webpack.config.js详解(上)
  15. scikit-learn的线性回归模型
  16. ACG图片站\python爬虫\LAMP环境
  17. sitecore系统教程之内容编辑器中创建项目
  18. col-xs , col-sm , col-md , col-lg是什么意思?什么时候用?
  19. 修改PS1变量
  20. 【安全开发】PHP安全编码规范

热门文章

  1. JDBC调用oracle 存储过程
  2. 【HDOJ6610】Game(序列带修莫队)
  3. php基于SQLite实现的分页功能示例
  4. LOJ 2303 「NOI2017」蚯蚓排队——链表+哈希表
  5. Vue.js 计算属性
  6. mysql启动以及常用命令汇总
  7. XX-net https://github.com/XX-net/XX-Net
  8. maven 国内加速,修改镜像源
  9. SetWindowsHookEx 其他进程的 记录
  10. 如何设置Windows操作系统打印机与xlpd连接