📄 l9_5.cpp
字号:
#include <iostream.h>
template<class T>
class myArray
{
public:
myArray(int nSize,T Initial);
~myArray()
{
delete[] m_pArray;
}
T &operator[](int nIndex)
{
return m_pArray[nIndex];
}
void Show( int nNumElems, char *pszMsg=" ", bool bOneLine=true);
void Sort(int nNumElems);
protected:
T *m_pArray;
int m_nSize;
};
template<class T>
myArray< T >::myArray(int nSize,T InitVal)
{
m_nSize=(nSize>1)? nSize:1;
m_pArray=new T[m_nSize];
for(int i=0;i<m_nSize;i++)
m_pArray[i]=InitVal;
}
template<class T>
void myArray< T >::Show( int nNumElems, char *pszMsg, bool bOneLine)
{
cout << pszMsg<<endl;
if(bOneLine)
{
for(int i=0;i<nNumElems;i++)
cout << m_pArray[i] << ' ';
cout << endl;
}
else
{
for(int i=0;i<nNumElems;i++)
cout << m_pArray[i]<<endl;
}
}
template<class T>
void myArray< T >::Sort(int nNumElems)
{
int i, j;
T temp;
for (i = 1; i < nNumElems; i++)
{
j = i;
temp = m_pArray[i];
while (j > 0 && temp < m_pArray[j-1])
{
m_pArray[j] = m_pArray[j-1];
j--;
}
m_pArray[j] = temp;
}
/* int nOffset=nNumElems;
bool bSorted;
//check argument of parameter nNumbers
if(nNumElems<2)
return;
do
{
nOffset=(nOffset*8)/11;
nOffset=(nOffset<1)?1:nOffset;
bSorted=true;//set sorted flag
//compare elements
for(int i=0,j=nOffset; i < (nNumElems-nOffset); i++,j++)
{
if(m_pArray[i]>m_pArray[j])
{
//swap elements
T nSwap=m_pArray[i];
m_pArray[i]=m_pArray[j];
m_pArray[j]=nSwap;
bSorted=false;//clear sorted flag
}
}
}while(!bSorted||nOffset!=1);
*/
}
void main()
{
int nArr[10]={89,34,32,47,15,81,78,36,63,83};
char cArr[10]={'C','W','r','Y','k','J','X','Z','y','s'};
myArray<int> IntegerArray(10,0);
myArray<char> CharArray(10,' ');
for(int i=0;i<10;i++)
IntegerArray[i]=nArr[i];
for(i=0;i<10;i++)
CharArray[i]=cArr[i];
IntegerArray.Show(10,"Unsorted array is: ");
IntegerArray.Sort(10);
IntegerArray.Show(10,"Sorted array is: ");
cout << endl ;
CharArray.Show(10,"Unsorted array is: ");
CharArray.Sort(10);
CharArray.Show(10,"Sorted array is: ");
cout << endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -