#pragma once
template<typename K>
class anArray
{
public:
anArray();
~anArray();
void add(K addData);
void Insert(int index,K insertData);//插入
void sort();
int GetMin();//取数组最小值
int GetMax();//取数组最大值
void remove(int index);//删除
int getLength() ;
void showArray();
private:
void changeLength();
int arraySize;
K * Array;
};
template<typename K>
anArray<K>::anArray()
{
arraySize = 0;
Array = new K [3];
}
template<typename K>
anArray<K>::~anArray()
{
delete [] Array;
}
template<typename K>
void anArray<K>::add(K addData)
{
K * oldArray = Array;
arraySize ++;
if(arraySize >= 3)
{
changeLength();
}
Array[arraySize - 1] = addData;
}
template<typename K>
int anArray<K>::getLength()
{
return arraySize;
}
template<typename K>
void anArray<K>::Insert(int index,K insertData)
{
if(index <= arraySize)
{
arraySize ++;
changeLength();
for(int pos = arraySize;pos >= index;pos--)
Array[pos] = Array [pos-1];
Array [ index -1] = insertData;
}
else
{
cout<<"Insert("<<index<<","<<insertData<<"):Falled"<<endl;
}
}
template<typename K>
void anArray<K>::showArray()
{
for (int i=0;i < arraySize;i++)
std::cout<< Array [i] << std::endl;
}
template<typename K>
void anArray<K>::changeLength()
{
K * oldArray = Array;
Array = new K [arraySize+4];
for (int index = 0;index <arraySize; ++index)
Array [ index ] = oldArray [ index];
delete oldArray;
}
template<typename K>
void anArray<K>::sort()
{
int temp;
for(int i=0;i<arraySize-1;i++)
{
for(int j = i+1;j<arraySize;j++)
{
if(Array [i] > Array [j])
{
temp = Array[i];
Array [i] = Array [j];
Array [j] = temp;
}
}
}
}