⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdoublearray.cpp

📁 gps 卫星位置的计算
💻 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 + -