📄 sdoublearray.cpp
字号:
// SingleArray.cpp: implementation of the CSingleDoubleArray class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SDoubleArray.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CSingleDoubleArray::CSingleDoubleArray()
{
m_pData=NULL;
m_iFirst=0;
}
CSingleDoubleArray::CSingleDoubleArray(int iFirst)
{
SetSize(iFirst);
}
CSingleDoubleArray::~CSingleDoubleArray()
{
Clear();
}
void CSingleDoubleArray::Clear()
{
TRACE("void CSingleDoubleArray::Clear()\n");
if(m_pData)
{
ASSERT(AfxIsValidAddress(m_pData,sizeof(double)*m_iFirst));
delete[] m_pData;
m_pData=NULL;
}
m_iFirst=0;
}
void CSingleDoubleArray::SetSize(int iFirst)
{
TRACE("void CSingleDoubleArray::SetSize(int iFirst)\n");
ASSERT(iFirst>=0);
Clear();
m_iFirst=iFirst;
m_pData=new double[m_iFirst];
ASSERT(AfxIsValidAddress(m_pData,sizeof(double)*m_iFirst));
}
double& CSingleDoubleArray::operator [](int iFirst)
{
// TRACE("long& CSingleDoubleArray::operator [](int iFirst)\n");
// ASSERT(AfxIsValidAddress(m_pData,sizeof(long)*m_iFirst));
ASSERT(m_pData);
ASSERT(iFirst<m_iFirst&&iFirst>=0);
return m_pData[iFirst];
}
/////////////////////////////////////////////////////////////////////
CDoubleArray::CDoubleArray()
{
m_pData=NULL;
m_iFirst=m_iSecond=0;
}
CDoubleArray::CDoubleArray(int iFirst,int iSecond)
{
SetSize(iFirst,iSecond);
}
CDoubleArray::~CDoubleArray()
{
Clear();
}
void CDoubleArray::Clear()
{
TRACE("void CDoubleArray::Clear()\n");
if(m_pData)
{
// ASSERT(AfxIsValidAddress(m_pData,sizeof(double)*m_iFirst*m_iSecond));
CString s;
s.Format("Delete %d*%d\n",m_iFirst,m_iSecond);
TRACE(s);
delete[] m_pData;
m_pData=NULL;
}
m_iFirst=m_iSecond=0;
}
void CDoubleArray::SetSize(int iFirst,int iSecond)
{
TRACE("void CDoubleArray::SetSize(int iFirst,int iSecond)\n");
ASSERT(iFirst>=0&&iSecond>=0);
Clear();
m_iFirst=iFirst;
m_iSecond=iSecond;
m_pData=new double[m_iFirst*m_iSecond];
ASSERT(AfxIsValidAddress(m_pData,sizeof(double)*m_iFirst*m_iSecond));
}
double* CDoubleArray::operator [](int iFirst)
{
// TRACE("double* CDoubleArray::operator [](int iFirst)\n");
// ASSERT(AfxIsValidAddress(m_pData,sizeof(double)*m_iFirst*m_iSecond));
ASSERT(m_pData);
ASSERT(iFirst<m_iFirst&&iFirst>=0);
return m_pData+m_iSecond*iFirst;
}
int CDoubleArray::Get1Size()
{
return m_iFirst;
}
int CDoubleArray::Get2Size()
{
return m_iSecond;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -