0
如何進行默認的構造,所述拷貝構造和移動構造函數相互比較爲骨料類型等std::array
其存儲的速度內置在類型元素?C++ 11骨料和構造速度對比
直覺上,我會說移動>默認>複製(越快越快)。
這是正確的嗎?
如何進行默認的構造,所述拷貝構造和移動構造函數相互比較爲骨料類型等std::array
其存儲的速度內置在類型元素?C++ 11骨料和構造速度對比
直覺上,我會說移動>默認>複製(越快越快)。
這是正確的嗎?
的默認構造一個std::array
拿着內置(如float
,int
等)將是最快的,其次是移動和副本(這將是等效快)。
std::array
是一個集合,所以默認構造函數不會做任何事情。作爲cppreference
注意,默認初始化可能導致非T類不定值
注意,因爲這些是內置插件,移動和複製是完全一樣的性能明智的,因爲說您無法以比複製內容更快的速度移動內置內容。
所以對於一個std::array
,排序是默認>移動 == 副本。
這不一定適用於包含非內置插件的聚合,但適用於僅包含內置插件或僅包含內置插件的其他聚合的聚合。
它取決於存儲在'array'中的元素的類型。可以是move = default = copy,或move = copy>默認或任意組合。 – user975989
你說得對。我其實正在考慮內置類型。我正在糾正這個問題。 – Corvinus
Well move =爲內建拷貝,所以拷貝/移動與memcpy相同,默認是memset等效(可能是SIMD等)。沒關係我說謊,默認不是memset它只是未初始化。 – user975989