In C++, write a template-based class that implements a set of items. The class should allow the user to:
a. Add a new item to the set
b. Get the number of items in the set
c. Get a pointer to a dynamically created array containing each item in the set. The caller of this function is responsible for de-allocating the memory.
d. Test your class by creating sets of different data types (e.g. integers, strings, etc.)