私は以前のアプリケーションの状態(CTRL + Z/CTRL + Y)を復元するためにソフトウェアでのユーザの操作を追跡するクラスを設計しています。私は、公演に関して何かを明確にしたいと思っていました。ポインタや "普通のオブジェクト"を格納しているリスト
私はSTLのstd::list
コンテナを使用しています。このリストには、本当に巨大なオブジェクトが含まれているわけではありませんが、かなりの数です。ポインタを使うべきかどうか?例えば
は、ここに格納されるオブジェクトの種類れる:
std::list<ImagesStatee*> stereoImages;
:今のところ
struct ImagesState
{
cv::Mat first;
cv::Mat second;
};
struct StatusBarState
{
std::string notification;
std::string algorithm;
};
は、私のような、struct
ポインタの形で全体を保存します私はnew
とdelete
の演算子に時間がかかることは知っていますが、私は "普通のオブジェクト"でスタックオーバーフローが発生したくないと思います。それは悪いデザインですか?
ポインタは、一般的に多型を除いて必要ありません。値を格納します(オブジェクトインスタンスで、ポインタではありません)。 'std :: vector'は「デフォルトのコンテナ」であることに注意してください。 –
これは、とにかくポインタを選択した場合、C++ 11で導入された新しいスマートポインタを使用するということです。 –
@Someprogrammerdude 'スマートポインタ'は安全のためにはいです。 – Papipone