[過去ログ]
C++相談室 part164 (1002レス)
C++相談室 part164 http://mevius.5ch.net/test/read.cgi/tech/1683600652/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
497: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 18:33:54.32 ID:mG7BHGLy0 質問なのですがclass Datasというクラスがあってstd:::vector<Datas> vec((size_t)100); であるときに vec[k]の場所にn個の場所を空けたい(値は初期化済Datasオブジェクトなら何でも良い)場合どう書くべき? やっぱ手動でsz = vec.size(); vec.resize(sz + n);して既存要素vec[k..sz-1]を後ろ(vec[k+n..])にコピーする --- (1) のが最速? 仮にstd::vector<T>::insertを使うと Datas x; // (A) vec.insert(std::next(vec
.begin(), k), n, x); // (B) になると思うのですが、なんか(A)で不必要にオブジェクトを1個構築せねばならないのと (B)で多分デフォルトコンストラクタではなくコピコンがn回呼ばれるのちょっち嫌 (なぜなら(1)のコピーとn個分の場所の確保に加えて、xをn回コピーするという余デフォルト構築よりも遅そうな処理をするから http://mevius.5ch.net/test/read.cgi/tech/1683600652/497
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 505 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s