Programing/C++

STL Vector를 이용한 DataManger Class 만들기 예제

Ezzi 2012. 5. 30. 15:06
반응형

- 미사일 객체의 데이타를 관리한다고 가정 


// By Helloezzi

// 2012.5.30

///////////////////////////////////////////////////////////////////////

// missileData.h


#pragma once

#include <vector>


using namespace std;


struct _POS

{

_POS()

{

xPos = yPos= zPos = distance = 0;

}


_POS( const _POS& _src) 

{

xPos = _src.xPos;

yPos = _src.yPos;

zPos = _src.zPos;

distance = _src.distance;

}


double distance;

double zPos;

double xPos;

double yPos;

};


class CMissileData

{

public:

CMissileData(void);

~CMissileData(void);

public:

void AddPosData(_POS pos);

void DelPosData(int id);

_POS FindPosData(int id);

void DelAllPosData();

bool GetLastPos(_POS& _pos);

public:

vector<_POS> m_Pos;

};


///////////////////////////////////////////////////////////////////////

// missileData.cpp


#include "StdAfx.h"

#include "MissileData.h"


CMissileData::CMissileData(void)

{


}


CMissileData::~CMissileData(void)

{

DelAllPosData();

}


void CMissileData::AddPosData(_POS pos)

{

m_Pos.push_back(pos);

}


void CMissileData::DelPosData(int id)

{

int iCnt = 0;

vector<_POS>::iterator itor = m_Pos.begin();

for( ; itor != m_Pos.end(); ++itor )

{

if( iCnt == id )

{

itor = m_Pos.erase( itor );

return;

}

++iCnt;

}

}


// HRESULT CMissileData::FindPosData(int id, _POS& _Pos)

// {

// 

// return S_OK;

// }


_POS CMissileData::FindPosData(int id)

{

int iCnt = 0;

vector<_POS>::iterator itor = m_Pos.begin();

for ( ; itor != m_Pos.end(); ++itor)

{

if (iCnt == id)

{

_POS pos = *itor;

return pos;

}

++iCnt;

}

}


void CMissileData::DelAllPosData()

{

m_Pos.clear();

}


bool CMissileData::GetLastPos(_POS& _pos)

{

int temp = m_Pos.size();

if (NULL == temp)

{

return false;

}

_pos = m_Pos.at(temp -1);

return true;

}


반응형

'Programing > C++' 카테고리의 다른 글

IPv4 주소를 확인하는 C++ 정규식 코드  (0) 2023.05.04
c++ 파일 쓰기 예제코드  (0) 2023.03.11
C vs C++ 의 차이점  (0) 2023.02.27
C++ 커리큘럼 가이드  (0) 2023.02.26
Struct  (0) 2011.02.10