参照型を格納できるコンテナについてなど
ちょっと長文です。下のほうに質問があります。
STLのvectorコンテナを使用しているのですが、
困った事態が発生しています。
自分は、参照型を要素として、持たしたいのですが、
持たすことができません。
なにやら調べてみたところ、STLのコンテナクラスというのは
基本的に「値ベースのコンテナ」らしく、「参照ベースのコンテナ?」
としてコンテナを使うには、ポインタ型を格納して下さい。との
ことでした。
ただし、この方法は2重deleteが発生する危険性を孕んでいるので、
Boostのなんかのポインタークラス?のようなものを使えば、
そのような問題に悩まされることないですよー。とありました。
ここで問題なのは、
・Boostを扱えるだけの知識がない。
・そもそもBoostを使えるまで環境設定できる自信がない。
ということです。
そのため、普通のポインタを使って実装しようと思うのですが、
そして上記のような問題が出てくるにつれ自分の中では
次のような疑問点が出てきました。
●質問(1)
・なんで参照型を格納できるコンテナがないのよ!
本当はあったりするんだけども、自分が知らないだけ?
●質問(2)
・関数間でオブジェクトを渡すときには、パフォーマンスとかも
考慮してもconstキーワードを使いつつの参照渡しがよい。と
Effective C++か何かで読んだのですが、コンテナに格納する
場合にはこれは有効ではないのか?
また、オブジェクトは、基本的には、やたらめったら
コピーするものではなく、一つオブジェクト用のメモリ領域を
作ったらそれを流用(ポインタ・参照を使って参照する)した方が、
作り的にきれいな気がするのですが、なにか方針とかあったりする
のでしょうか?
以上長くなってしまいましたが、よろしくお願いいたします。