STLのコンテナに入れるのは オブジェクトかオブジェクトのポインタか – プログラミング – Home

STLのコンテナに入れるのは オブジェ...
 
通知
すべてクリア

[解決済] STLのコンテナに入れるのは オブジェクトかオブジェクトのポインタか


shin
 shin
(@shin)
ゲスト
結合: 24年前
投稿: 18
Topic starter  

もう一つ質問です。
STL の vector などに オブジェクトを格納したい場合、
オブジェクト自身を入れるのと、そのポインタを入れるのと
どちらが良いのでしょうか?


引用未解決
トピックタグ
shin
 shin
(@shin)
ゲスト
結合: 24年前
投稿: 18
Topic starter  

補足です。
格納しようとしているのは、stl の string と 自作のオブジェクトです。


返信引用
jacta
 jacta
(@jacta)
ゲスト
結合: 24年前
投稿: 10
 

std::basic_stringは、javaのクラスと同じように実体を別に持っていて、
コピーコンストラクタや代入演算子でコピーした場合には、参照カウンタを
インクリメントするだけで実際のデータはコピーされません。

このことから、std::basic_stringをstd::vectorの要素にするときには、
オブジェクト自身を入れた方が効率がよいのではないでしょうか?
ポインタで持たせた場合は、std::vectorのインスタンスが破壊される前に
確実にdeleteしないといけないので間違いが起こる大きな要因になります。


返信引用
shin
 shin
(@shin)
ゲスト
結合: 24年前
投稿: 18
Topic starter  

レスが遅れましたがとても良く分かりました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました