美文网首页C++11新特性程序员C++
C++11新特性(13)- 使用大括号包围的值列表赋值

C++11新特性(13)- 使用大括号包围的值列表赋值

作者: 面向对象思考 | 来源:发表于2018-06-11 22:59 被阅读22次

不止是初始化

本连载的第二篇文章说明了如何使用大括号包围的值列表来初始化变量。

C++11新特性(2)- 列表初始化

除了初始化之外,这种形式也可以用于赋值语句中。先回顾一下初始化变量时的情况:

vector vi{1, 2, 3, 4, 5};

接下来是赋值的情况:

vector vi;

vi = {6, 7, 8, 9, 10};

这种形式,对于有限多个数值的赋值是非常有用的。

补充

和初始化一样,使用大括号包围的值列表也有同样的优势。一个是防止窄化,有时可以简单的理解为防止精度降低,例如下面的代码是无法编译通过的:

double pai = 3.1415926;

int pi;

pi = {pai};        //编译错误。

另外,如果大括号里的初始化列表为空,编译器会创建一个值初始化的临时量并赋值给赋值对象。

作者观点

正是各种的不方便,才促进了C++的进步。


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】,轻松学习每一天!

面向对象设计,面向对象编程,面向对象思考!

相关文章

  • C++11新特性(13)- 使用大括号包围的值列表赋值

    不止是初始化 本连载的第二篇文章说明了如何使用大括号包围的值列表来初始化变量。 C++11新特性(2)- 列表初始...

  • C++ 11 新特性之右值引用与移动

    继续奉上c++11新特性部分,这是C++11新特性介绍的第七部分,涉及到左右值引用、移动构造、移动赋值、完美转发等...

  • C++11中std::move、std::forward、左右值

    C++11中std::move、std::forward、左右值引用、移动构造函数的测试 关于C++11新特性之s...

  • C++11 中的右值引用与转移语义

    本文介绍了 C++11 标准中的一个特性,右值引用和转移语义。这个特性能够使代码更加简洁高效。 新特性的目的 右值...

  • C++11 标准新特性: 右值引用与转移语义

    C++11 标准新特性: 右值引用与转移语义 VS2013出来了,对于C++来说,最大的改变莫过于对于C++11新...

  • c++11 通用初始化方式

    C++11将使用大括号的初始化(列表初始化)作为一种通用初始化方式,可用于所有类型。 数组初始化 数组以前就可使用...

  • day7-容器类型

    7.1 列表相关方法 7.1.1 列表赋值 a.直接使用一个列表变量给另一个列表变量赋值,赋的是地址。赋完值之后,...

  • July 23-day8-Python字典、元组和集合

    补充列表 修改列表元素通过下标获取元素,然后重新赋值:列表名[下标] = 新的值 列表的其他操作(1).len(列...

  • Python:list和tuple

    list list是一种可变的有序列表,可以随时添加或删除其中的元素,使用[ ]大括号赋值。例如,列出班里所有同学...

  • Day7 总结

    一.列表的相关方法 1.列表赋值"""a.直接使用一个列表变量给另一个列表变量赋值,赋的是地址。赋完值之后,对其中...

网友评论

    本文标题:C++11新特性(13)- 使用大括号包围的值列表赋值

    本文链接:https://www.haomeiwen.com/subject/vwykeftx.html