- C++相談室 part124 [無断転載禁止]©2ch.net
249 :デフォルトの名無しさん (ワッチョイ 617b-7Ba6)[]:2016/04/27(水) 02:12:47.40 ID:GuBYWkr/0 - >>243
例えば void assign(const std::vector<double>& v){ member = v; } こうだと必ず1度コピーが動く。 void assign(std::vector<double> v){ member.swap(v); } こうだと引数がrvalueの場合最適化でコピーが動かない場合があるし、 C++11ならmoveになる。 swapのコストが低いのは言わなくてもわかるよね。 lvalueの場合でもコピーは1度 C++11以降で void assign(const std::vector<double>& v); void assign(std::vector<double>&& v); 二つ書いたときとのコスト差はswapのみ
|