list添加删除操作

 #pragma once
#include "m_ball.h"
#include <list>
using namespace std;
class CBallMgr
{
public:
 CBallMgr(void);
 ~CBallMgr(void);
 m_ball *Create(hgeVector,double,bool, int,int);
 void Updata();
private:
 list <m_ball*> m_ballList;
};
extern CBallMgr gBllMrg;

 

#include "StdAfx.h"
#include "BallMgr.h"
using namespace std;
CBallMgr gBllMrg;
CBallMgr::CBallMgr(void)
{
}

CBallMgr::~CBallMgr(void)
{
}

m_ball *CBallMgr::Create(hgeVector PlaceList,double BallV,bool BallState, int BallNum,int BallID)
{
      m_ball * p_New=new m_ball();
   p_New->Init(PlaceList,BallV,BallState,BallNum,BallID);
   m_ballList.push_back(p_New);
   return p_New;
}

void CBallMgr::Updata()
{
 for(std::list<m_ball*>::iterator p=m_ballList.begin();p!=m_ballList.end();)
 {
  m_ball *p2=*p;
  if(p2->isDie())
  {
   delete p2;
   p=m_ballList.erase(p);
   continue;
  }
  else
   p2->Updata();
  ++p;
 }
}

 

posted @ 2011-09-23 20:05  byfei  阅读(402)  评论(0编辑  收藏  举报