Например, я использую шаблон команды и добавляю команды в очередь. Записи в очереди - это CommandItems, который похож на простую структуру, которая содержит объект команды и время выполнения команды.C++: Можно ли дважды добавить один и тот же объект в коллекцию?
struct CommandItem
{
time_t theTime;
std::shared_ptr<Command> command;
...
// comparison operator implemented
}
std::priority_queue<CommandItem> commandQueue_;
Если я хочу, чтобы выполнить ту же команду дважды в разное время, так что было бы два CommandItems для команды в очереди, мне нужно построить два отдельных объекта команды? Или я могу просто поместить один и тот же командный объект дважды? За и против?
(Примечание с помощью shared_ptr командовать объекты. Очередь должна занимать командные объекты различных подклассов)
Имеет смысл, я думаю, просто странно повторять использование такого объекта, я привык создавать новые объекты для каждого нового использования. Мне интересно, если позже, если я изменю классы Command (не уверен, разумно ли ожидать, что они когда-либо будут иметь состояние), вернется ли это, чтобы укусить меня. – User