只是把new 和delete做了个简单的封装,简化多维数组的创建过程,最多支持三维数组,再多就没必要了。
#ifndef XQARRAY_H_INCLUDED
#define XQARRAY_H_INCLUDED
template <typename T>
void createArray(T** &pArray, int i, int j)
{
pArray = new T*[i];
for (int n=0; n<i; ++n)
{
pArray[n] = new T[j];
}
}
template <typename T>
void createArray(T*** &pArray, int i, int j, int k)
{
pArray = new T**[i];
for (int n=0; n<i; ++n)
{
pArray[n] = new T*[j];
for (int m=0; m<j; ++m)
{
pArray[n][m] = new T[k];
}
}
}
template <typename T>
void deleteArray(T** &pArray, int i, int j)
{
if(pArray)
{
for (int n=0; n<i; ++n)
{
delete[] pArray[n];
}
delete[] pArray;
pArray = NULL;
}
}
template <typename T>
void deleteArray(T*** &pArray, int i, int j, int k)
{
if(pArray)
{
for (int n=0; n<i; ++n)
{
for (int m=0; m<j; ++m)
{
delete[] pArray[n][m];
}
delete[] pArray[n];
}
delete[] pArray;
pArray = NULL;
}
}
#endif // XQARRAY_H_INCLUDED