У меня есть список задач. Задача определяется именем, датой (и временем) и продолжительностью.
Мой класс TaskManager обрабатывает std::list<Task>
, отсортированные по дате исполнения. Он должен обеспечить способ получения заданий в определенный день.
Пример: у меня задание 1 должно быть выполнено в понедельник 6 часов утра, задание 2 - в понедельник 9 часов утра, задание 3 - во вторник 7 часов вечера. Если я передам «понедельник» моему методу, он должен вернуть задачи 1 и 2.
Как бы вы это реализовали?
Я думаю, что хорошим способом (с точки зрения API) было бы предоставить пару std::list<Task>::iterator
. Так что у меня был бы метод TaskManager::begin(date)
. Считаете ли вы, что этот метод должен получить итератор путем итерации от начала списка до тех пор, пока он не найдет первое задание, которое должно быть выполнено в эту дату, или путем получения его из std::map<date, std::list<Task>::iterator>
(но тогда мы должны поддерживать его в актуальном состоянии при добавлении или удалении задач)?
А потом, как я могу реализовать метод TaskManager::end(date)
?