#includeusing namespace std;templateclass myTClass{private: int m_n; T *m_pa;public: myTClass(int n) { m_pa = new T[n]; m_n = n; } ~myTClass() { if ( m_pa ) { delete [] m_pa; m_pa = NULL; } } T& operator[](int n) { return (m_pa[n]); } //此函数用来比较不是基本类型参数时的大小(如,自己定义的结构体当T参数传进来时,要根据 //你定义的结构体自定义大小比较) virtual int myComp(T v1,T v2) { if ( v1 >v2 ) { return 1; } else if ( v1 == v2 ) { return 0; } else { return -1; } } //参数为真时使用自定义比较函数 void sort(bool blnUseInlineComp = false) { for ( int i = 0 ; i0 ) { T tmp = m_pa[j]; m_pa[j] = m_pa[i]; m_pa[i] = tmp; } } else { if ( m_pa[i] >m_pa[j] ) { T tmp = m_pa[j]; m_pa[j] = m_pa[i]; m_pa[i] = tmp; } } } } } //第二个参数为真时,使用自定义比较函数 int FindItem(T value,bool blnUseInlineComp = false) { for ( int i = 0 ; i