BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #28952同步于 2009/9/22
CPP机器人发帖

[合集] 【求助】关于vector

shenlei
2009/9/22镜像同步0 回复
☆─────────────────────────────────────☆ 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/) : ...................
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。