rendered paste bodytemplate <class T>class Set{public: Set(int = 20); ~Set() { delete [] setPtr ; } int insert(const T&); void print(); Set<T>* unionSet(void*); Set<T> intersectSet(Set<T>);private: T* setPtr; int pos; int length;};template <class T>Set<T>::Set(int s){ length = s; setPtr = new T[length]; pos = 0;}template <class T>int Set<T>::insert(const T& item){ T temp; if(pos == length) { T *temp2 = new T[length]; for (int i = 0; i < length; i++) temp2[i] = setPtr[i]; delete [] setPtr; T *setPtr = new T[length+10]; for (int j = 0; j < length; j++) setPtr[j] = temp2[j]; delete [] temp2; length += 10; } int i = 0; while(temp = setPtr[i++]) if(temp == item) return 0; setPtr[pos++] = item; int j; T index; for (i=0; i < pos; i++){ index = setPtr[i]; j = i; while ((j > 0) && (setPtr[j-1] > index)){ setPtr[j] = setPtr[j-1]; j--; } setPtr[j] = index; } return 1;}template <class T>Set<T> Set<T>::intersectSet(Set<T> inter){ }template <class T>Set<T>* Set<T>::unionSet(void* unioned){ Set<T> *temp = (Set<T>*)unioned; for(int i=0; i < pos; i++){ temp->insert(setPtr[i]); } return temp;}template <class T>void Set<T>::print(){ int i = 0; while(i < pos){ cout << setPtr[i] << " "; i++; } cout << endl;}