返回信息流☆─────────────────────────────────────☆
guomiwin (小eagle) 于 (Sat Jul 25 09:36:53 2009) 提到:
程序中用到vector
程序运行一段时间后会出错
出错提示:
File:d:\micosoft visual studio 8\vc\include\vector
Line: 117
Expression:("this->_Mycont != NULL",0)
出错的代码应该是在(把这段代码屏蔽后,不会出错了、、、)
for(it=m_docoVec.begin();it!=m_docoVec.end();it++)
{
if((*it).m_Energy.isDivided()==1)
{
DOCOFactory* _doco=(*it).split();
m_docoVec.push_back((*_doco));
}
}
大概意思是遍历整个vector,如果某个条件则生成一个成员,加入到vector中
望大家指点一下!谢谢!!!
☆─────────────────────────────────────☆
ericyosho (ericyosho) 于 (Sat Jul 25 09:46:59 2009) 提到:
split()是怎么实现的?
完全new出新对象?还是只是增加引用?
vector的使用过程中,不要使用引用;若不是指针的vector,而是对象的vector,那么也不要使用虚对象。
☆─────────────────────────────────────☆
guomiwin (小eagle) 于 (Sat Jul 25 09:50:31 2009) 提到:
完全new出新对象
【 在 ericyosho 的大作中提到: 】
: split()是怎么实现的?
: 完全new出新对象?还是只是增加引用?
: vector的使用过程中,不要使用引用;若不是指针的vector,而是对象的vector,那么也不要使用虚对象。
☆─────────────────────────────────────☆
LoveRose (江南西道|Movie) 于 (Sat Jul 25 10:46:49 2009) 提到:
你的split函数是啥样的啊
【 在 guomiwin (小eagle) 的大作中提到: 】
: 程序中用到vector
: 程序运行一段时间后会出错
: 出错提示:
: ...................
☆─────────────────────────────────────☆
guomiwin (小eagle) 于 (Sat Jul 25 10:52:52 2009) 提到:
DOCOFactory* DOCOFactory::split(int world[MaxHeight][MaxWidth])
{
DOCOFactory* doco=new DOCOFactory();
//下面就是对这个doco对象的初始化
this->m_Energy.setEnergy(this->m_Energy.getEnergy()/2);
doco->m_pMovement=doco->createMovement(this->m_pMovement->m_sMovement);
doco->m_pMovement->setXPos(this->m_pMovement->getXPos());
doco->m_pMovement->setYPos(this->m_pMovement->getYPos());
doco->m_pMovement->setiMovement(this->m_pMovement->m_sMovement);
doco->m_pMovement->setsMovement(this->m_pMovement->m_sMovement);
int temp=this->m_pMovement->m_iDirection;
temp=(temp+3)%8+1;
doco->m_pMovement->m_iDirection=temp;
doco->m_Energy.setEnergy(this->m_Energy.getEnergy());
world[doco->m_pMovement->m_iYPos][doco->m_pMovement->m_iXPos]+=3;
return doco;
}
【 在 LoveRose 的大作中提到: 】
: 你的split函数是啥样的啊
☆─────────────────────────────────────☆
xiaohuang (小黄) 于 (Sat Jul 25 11:19:12 2009) 提到:
split函数被重载了?似乎主函数里参数没有数组哇……
【 在 guomiwin (小eagle) 的大作中提到: 】
: DOCOFactory* DOCOFactory::split(int world[MaxHeight][MaxWidth])
: {
: DOCOFactory* doco=new DOCOFactory();
: ...................
☆─────────────────────────────────────☆
guomiwin (小eagle) 于 (Sat Jul 25 11:19:25 2009) 提到:
百度Expression:("this->_Mycont != NULL",0),没有结果、、、
google了一下, 发现学好英语的重要性了!、、、
看到一个回帖里写到:(http://www.cplusplus.com/forum/general/11297/)
A very important thing to remember is: don't modify lists (vector/deque/etc) during traversal.
http://www.parashift.com/c++-faq-lite/serialization.html#faq-36.12
但我确实需要在遍历的时候,判断是否满足条件从而生成一个新成员,加入到vector中
望解答!谢谢!!!
☆─────────────────────────────────────☆
guomiwin (小eagle) 于 (Sat Jul 25 11:21:03 2009) 提到:
哦,这个事后来尝试着改了的的、、、
主函数里改成DOCOFactory* _doco=(*it).split(m_aWorld);
没有重载
【 在 xiaohuang 的大作中提到: 】
: split函数被重载了?似乎主函数里参数没有数组哇……
☆─────────────────────────────────────☆
xiaohuang (小黄) 于 (Sat Jul 25 11:23:03 2009) 提到:
恩,我也想说这个,遍历的时候你又在vector后面加东西……
【 在 guomiwin (小eagle) 的大作中提到: 】
: 百度Expression:("this->_Mycont != NULL",0),没有结果、、、
: google了一下, 发现学好英语的重要性了!、、、
: 看到一个回帖里写到:(http://www.cplusplus.com/forum/general/11297/)
: ...................
这是一条镜像帖。来源:北邮人论坛 / cpp / #28952同步于 2009/9/22
CPP机器人发帖
[合集] 【求助】关于vector
shenlei
2009/9/22镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。