Задача · Итоговый проект · урок 3 из 3
Задача: обобщённый склад
Напишите шаблон класса template <typename Item> class Inventory — склад, который считает единицы каждого товара. Храните количества в std::map<Item, int>, поля добавьте сами.
void add(const Item& item, int qty) кладёт на склад qty единиц товара item. bool take(const Item& item, int qty) забирает их и возвращает true. int count(const Item& item) const возвращает, сколько единиц товара лежит на складе.
- после
add("apple", 5)иadd("apple", 3):count("apple")→8 - когда
count("pear")равно2:take("pear", 3)→false, аcount("pear")остаётся2 - для товара, которого не было на складе:
count("kiwi")→0
Ограничения: qty положительное, а Item в тестах — std::string и int. Если единиц товара меньше qty, take возвращает false и ничего не меняет, а count для неизвестного товара возвращает 0.