聚合的默认构造函数,复制构造函数和移动构造函数的速度如何相互比较类似于存储内置类型元素的std::array
类型?
直观地说,我会说 move>默认>复制(越大越快)。
这是对的吗?
答案 0 :(得分:1)
std::array
的默认构建工具(例如float
,int
等)将是最快的,其次是移动和复制(相当快速)。
std::array
是一个聚合,因此默认构造函数不执行任何操作。如cppreference
请注意,默认初始化可能会导致非类T
的值不确定
请注意,由于这些是内置函数,因此移动和复制的性能完全相同,因为无法移动内置文件比复制它更快。
因此对于std::array
,排序为默认> 移动 == 复制。
这不一定适用于包含非内置函数的聚合,但是对于仅包含仅包含内置函数的内置函数或其他聚合的聚合而言,这种情况一定适用。