Suppose that we want to implement the ADT set. Recall from Project 1 of Chapter 1 that a set is an unordered collection of objects where duplicates are not allowed. The operations that a set should support are
• Add a given object to the set
• Remove a given object from the set
• See whether the set contains a given object
• Clear all objects from the set
• Get the number of objects in the set
• Return an iterator to the set
• Return a set that combines the items in two sets (the union)
• Return a set of those items that occur in both of two sets (the intersection)
Define a class Set that uses a dictionary internally to implement these operations.