C ++ 11聚合&施工人员速度比较

时间:2016-08-03 15:41:58

标签: performance c++11 constructor comparison aggregate

聚合的默认构造函数复制构造函数移动构造函数的速度如何相互比较类似于存储内置类型元素的std::array类型?

直观地说,我会说 move>默认>复制(越大越快)。

这是对的吗?

1 个答案:

答案 0 :(得分:1)

std::array默认构建工具(例如floatint等)将是最快的,其次是移动复制(相当快速)。

std::array是一个聚合,因此默认构造函数不执行任何操作。如cppreference

所述
  

请注意,默认初始化可能会导致非类T

的值不确定

请注意,由于这些是内置函数,因此移动和复制的性能完全相同,因为无法移动内置文件比复制它更快。

因此对于std::array,排序为默认> 移动 == 复制

这不一定适用于包含非内置函数的聚合,但是对于仅包含仅包含内置函数的内置函数或其他聚合的聚合而言,这种情况一定适用。