Перейти к содержимому
Задача · Итоговый проект · урок 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.

inventory.cpp — cpp
cpp · строк: 17
Ctrl+Enter запуск · Esc выйти из редактора