C++ 创建对象,初始化列表与分配
C++ Creating objects, initialization lists vs assignment?
我最近和一个朋友讨论,他们说在C++中创建对象时,使用初始化列表(而不是不简单地分配数据成员)会提高性能。
为什么会这样(如果这是真的)?
我找到了这个页面:
http://www.parashift.com/c++-faq/init-lists.html
他们提到了临时对象,但我认为最近的编译器可以避免这种情况?
使用赋值时,对象默认在进入赋值之前构造。如果构造和复制对象是昂贵的操作,则至少应该摆脱其中一个。初始化列表删除了额外的复制操作。复制构造允许同时执行这两项操作。
相关文章:
- 访问动态分配列表中的元素
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- 如何将 QString 的 QList 分配给列表视图?
- 在成员初始值设定项列表中分配unique_ptr
- 使用列表进行动态结构分配
- C++初始化列表与分配值
- Unique_ptr:在列表中放置时未分配释放的指针
- 通过动态分配插入列表元素
- 我可以在 Boost.Spirit.Qi 中向列表运算符 (%) 提供内存分配提示吗?
- 将空初始化器列表分配给现有向量或地图的效果
- 如何删除列表中的动态分配类对象<T>?
- 声明变量以保存字符串列表时的内存分配
- 存储数据列表并自动分配给结构的最佳方法是什么
- 使用队列和列表 STL 进行C++分配。在将数据填充到列表或队列中然后打印该数据时遇到问题
- 将节点添加到链接列表中,而无需明确分配内存空间(无需使用新)
- 是否可以将新的列表节点分配给链表的现有节点
- 对象中列表的分配
- 分配列表和初始化器列表之间 C++11 缩小的差异
- 预分配列表
- 视觉对象无法分配列表迭代器 [C++]