[過去ログ]
C++相談室 part164 (1002レス)
C++相談室 part164 http://mevius.5ch.net/test/read.cgi/tech/1683600652/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
504: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 23:34:05.22 ID:mG7BHGLy0 わかりました http://mevius.5ch.net/test/read.cgi/tech/1683600652/504
506: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 23:46:35.71 ID:mG7BHGLy0 >>502 >GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。 この懸念は普通の作りなら基本的に無用。基本的に問題無い (1) Obj1という型がポインタやハンドルではなくクラスの場合: objはwhile(1) { }のブロックの中で構築されるので ループの終わりでデストラクタが呼ばれる(破棄される)から、 Device::GetObj()が真っ当な作りならnewしたポインタをObj1のインスタンスobjに引き渡し、 Obj1クラスが真っ当な作りならobjが破棄されるときに引き渡されたポインタをdeleteする(ように作る からダングリングポインタは生じない(ようにできる (2) Obj1という型がポインタやハンドルの場合 確保したポインタやハンドルはいずれクローズせねばならない。 ループが次の繰り返しに入る前に確実にクローズすればよい http://mevius.5ch.net/test/read.cgi/tech/1683600652/506
507: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 23:47:03.13 ID:mG7BHGLy0 基本的に、というのは(2)のケースで例外が生じたときクローズされずに抜けてしまう危険性があるのと、 (1)のケースにおいてもobj1の構築中に例外が生じた場合はきちんとデストラクトされない危険性がある。 Obj1のメンバがnewされるべき生ポインタの場合はこれは対処不能。生ポはやめてスマポにすればおk 詳しい話ははちみつ餃子氏に聞くと良い(マテ http://mevius.5ch.net/test/read.cgi/tech/1683600652/507
508: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 23:58:52.90 ID:mG7BHGLy0 訂正orz、 誤: ループの終わりでデストラクタが呼ばれる(破棄される)から、(>>506 正: ループが次の繰り返しに入る前かループを抜ける際にデストラクタが呼ばれる(破棄される)から http://mevius.5ch.net/test/read.cgi/tech/1683600652/508
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s