たとえば、私はコマンドパターンを使用しており、キューにコマンドを追加しています。キュー内のエントリは、コマンドオブジェクトを保持する単純な構造体のようなCommandItemsと、コマンドを実行する時間です。C++:同じオブジェクトをコレクションに2回入れることはできますか?
struct CommandItem
{
time_t theTime;
std::shared_ptr<Command> command;
...
// comparison operator implemented
}
std::priority_queue<CommandItem> commandQueue_;
私はキューにコマンド用の2つのCommandItemsがあるだろうというように、異なる時間に二回同じコマンドを実行したい場合は、私は2つの別々のコマンドオブジェクトを作成する必要がありますか?あるいは、同じコマンドオブジェクトを2度入れてもいいですか?長所短所?
(注オブジェクトを指令するのshared_ptrを使用。キューは、様々なサブクラスのコマンドオブジェクトを保持する必要がある)
このようなオブジェクトを再利用するのは変だと思いますが、私は新しい使用のたびに新しいオブジェクトを作成することに慣れています。後でCommandクラスを修正すれば、これが私に噛み付くかどうか、これが状態を持つことを期待するのが妥当かどうかはわかりません。 – User