【问题标题】:C++ -> Which is faster?? int a(5); or int a = 5;C++ -> 哪个更快?诠释一个(5);或int a = 5;
【发布时间】:2021-04-01 03:30:19
【问题描述】:

我知道这很简单,但我很困惑 int a (5); 在 C++ 中是否比 int a=5; 快,正如我在某处读到的那样,如果在类中定义了一个只有一个参数的构造函数,则初始化可以用等号来完成。(语句可以用等号写) 所以我想可能是第一个有点额外的工作。

【问题讨论】:

  • 是等价的。随意测试,但它是等价的。您自己的报价没有任何区别;无论哪种方式,它仍然是初始化,这对同一件事来说是相同的工作。
  • 在 C++ 中进行初始化的方法远不止这两种。如果您有一个小时的时间,您可能有兴趣观看 Nicolai Josuttis 的演讲 The Nightmare of Initialization in C++
  • 好的,我会这样做的。

标签: c++ performance methods constructor variable-initialization


【解决方案1】:

这两种形式以不同的方式告诉编译器同一件事(语句具有相同的最终含义)。由于编译器被告知相同的事情,它应该生成相同的代码。

(理论上有人可以设计一个编译器来用这些语句做不同的事情,但那将是一个糟糕的设计。)

【讨论】:

    【解决方案2】:

    两者应在同一时间段内运行。即使您引用的报价也没有表明任何表现出性能差异的内容。

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 2011-08-19
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多