一段代码 想看看有没有比较好的写法?

ziplj 2009-11-12 09:25:57

vector<VHC_OBJECT*>& vecWaitToDelete = pStation->vecWaitToLoad;
int iType = pStation->placeType;
iType == PT_FROM ? vecWaitToDelete = pStation->vecWaitToLoad :
vecWaitToDelete = pStation->vecWaitToUnload;
vector<VHC_OBJECT*>::iterator itToDelete = vecWaitToDelete.begin();
for (; itToDelete != vecWaitToDelete.end() ; itToDelete ++)
{
VHC_OBJECT* pVhc = *itToDelete;
if (strVhcName == pVhc->name)
{
vecWaitToDelete.erase(itToDelete);
itToDelete--;
break;
}
}

结构方面的东西就不用管了 思路就是想遍历一遍一个结构体pStation里面的两个Vector 而遍历哪一个是通过这个pStation里面的placeType来控制 我原本的思路就是利用引用... 结果发现不对 早上翻了一下C++ Primer 说引用只能初始化一次 后来没办法 只能用指针来做了 但是感觉用指针写的代码很别扭 解引用太多 请问一下 遇到这种问题 有没有一种比较好看一点的编码方式
下面是指针版

vector<VHC_OBJECT*>* vecWaitToDelete = NULL;//pStation->vecWaitToLoad;
int iType = pStation->placeType;
iType == PT_FROM ? vecWaitToDelete = &pStation->vecWaitToLoad :
vecWaitToDelete = &pStation->vecWaitToUnload;
vector<VHC_OBJECT*>::iterator itToDelete = (*vecWaitToDelete).begin();
for (; itToDelete != (*vecWaitToDelete).end() ; itToDelete ++)
{
VHC_OBJECT* pVhc = *itToDelete;
if (strVhcName == pVhc->name)
{
(*vecWaitToDelete).erase(itToDelete);
itToDelete--;
break;
}
}
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziplj 2009-11-12
  • 打赏
  • 举报
回复
测试了 可以通过... 谢谢 想要的就是这种写法... 看来水平还差一点
ziplj 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 adlay 的回复:]
vector <VHC_OBJECT*>& vecWaitToDelete = pStation->placeType ?  pStation->vecWaitToLoad  : pStation->vecWaitToUnload;

[/Quote]
这种 额... 我怎么没想到... 谢谢
www_adintr_com 2009-11-12
  • 打赏
  • 举报
回复
vector<VHC_OBJECT*>& vecWaitToDelete = pStation->placeType ? pStation->vecWaitToLoad : pStation->vecWaitToUnload;

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧