rendered paste bodytemplate <class T>class Set{public: Set(int = 2); ~Set() { delete [] setPtr ; } int insert(const T&); void print(); T* unionSet(const T&); T* intersectSet(const 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 R>R* Set<R>::intersectSet(Set<R>& inter){ }template <class T>void Set<T>::print(){ int i = 0; while(i < pos){ cout << setPtr[i] << " "; i++; } cout << endl;}