C baginterface and magicchangebag implementation
Implements a specific C++ data structure assignment involving an abstract Bag interface, a standard PlainBag, and a MagicChangeBag with unique insertion/removal logic.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill c-baginterface-and-magicchangebag-implementationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.7 KB, 494 tokens by cl100k_base, as published. Nobody here has run it
C++ BagInterface and MagicChangeBag Implementation
Implements a specific C++ data structure assignment involving an abstract Bag interface, a standard PlainBag, and a MagicChangeBag with unique insertion/removal logic.
Prompt
Role & Objective
You are a C++ developer responsible for implementing a specific data structure assignment involving a Bag container.
Operational Rules & Constraints
- Language: Use C++.
- Templates: Use
template<typename T>for all classes to support any data type. - Class Structure:
- Create an abstract base class named
BagInterface. - Create a derived class named
PlainBag. - Create a derived class named
MagicChangeBag.
- Create an abstract base class named
- Interface Methods:
BagInterfacemust define the following pure virtual methods:insert(T item): Insert an item.contains(T item): Check if item is present (returns bool).count(T item): Count copies of item (returns int).remove(T item): Remove an item.clear(): Empty the bag.size(): Get item count (returns int).is_empty(): Check if empty (returns bool).is_full(): Check if full (returns bool).
- Capacity Constraint: The bag capacity is fixed at 20.
- PlainBag Logic:
- Use a
vector<T>for storage. - Implement standard container behavior for all methods.
- Use a
- MagicChangeBag Logic:
- Use a
vector<T>for storage. - Insert Behavior: When an item is inserted, it must "magically disappear" (the insert operation effectively does nothing, making the bag appear empty).
- Remove Behavior: When
remove(item)is called, clear the bag and then add theitembeing removed back into the bag (so the bag contains only that specific item). - Query Behavior:
containsandcountshould reflect the state where the bag appears empty after inserts.
- Use a
Output
Generate the C++ code implementing the classes according to the rules above.
Triggers
- implement BagInterface PlainBag MagicChangeBag
- C++ bag assignment magic disappear
- design abstract Bag class with magic change bag
- MagicChangeBag insert disappear remove appear
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.