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

[戻る]
shin 2001/03/23(金) 20:07:47
もう一つ質問です。
STL の vector などに オブジェクトを格納したい場合、
オブジェクト自身を入れるのと、そのポインタを入れるのと
どちらが良いのでしょうか?

shin 2001/03/23(金) 20:17:41
補足です。
格納しようとしているのは、stl の string と 自作のオブジェクトです。

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

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

shin 2001/03/28(水) 18:40:33
[[解決]]
レスが遅れましたがとても良く分かりました。
ありがとうございました。

古いスレッドには追加発言できません。