📄 array3d.h
字号:
#ifndef _ARRAY3D_H_
#define _ARRAY3D_H_
#include "afxtempl.h"
#include "array2d.h"
template<class T>
class AFX_EXT_CLASS CArray3d {
int m_nLayer;
CArray2d<T> *m_pArray2d;
public:
CArray3d() : m_nLayer(0), m_pArray2d(NULL){}
CArray3d(int nLayer, int nWidth, int nHeight)
{
Array3dAlloc(nLayer, nWidth, nHeight);
}
~CArray3d() {
Array3dFree();
}
BOOL Array3dAlloc(int nLayer, int nWidth, int nHeight)
{
m_nLayer = nLayer;
m_pArray2d = new CArray2d<T>[nLayer];
for(int i=0; i<m_nLayer; i++) {
if(!m_pArray2d[i].ArrayAlloc(nWidth, nHeight))
break;
}
if(i == m_nLayer) return TRUE;
for(int j=0; j<i; j++) {
m_pArray2d[j].ArrayFree();
}
delete []m_pArray2d;
m_pArray2d = NULL;
m_nLayer = 0;
return FALSE;
}
void Array3dFree()
{
for(int i=0; i<m_nLayer; i++) {
m_pArray2d[i].ArrayFree();
}
m_nLayer = 0;
m_pArray2d = NULL;
}
CArray2d<T>& operator[](int n) {
return m_pArray2d[n];
}
BOOL IsEmpty() {
if((m_nLayer == 0) || (m_pArray2d == NULL)) return TRUE;
return FALSE;
}
int GetLayer() {
return m_nLayer;
}
int GetWidth() {
if(IsEmpty()) return 0;
return m_pArray2d[0].GetWidth();
}
int GetHeight() {
if(IsEmpty()) return 0;
return m_pArray2d[0].GetHeight();
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -