【发布时间】:2013-02-24 02:36:00
【问题描述】:
我在板上有路径,比如索引对列表,比如
list<pair<int,int> > *path;
当角色到达障碍物时,我需要用新路径替换所有从当前位置到结束的路径,但要保存从起点到障碍物的路径相同(以澄清一个小角色具有起点和目标单元格并从起点移动到终点并返回并再次重复。为了避免大量计算,我会尝试保存没有障碍的部分路径,并将旧部分替换为从障碍到结束的新部分)。 有没有不重复的简单方法?
稍后编辑以澄清: 旧路径是 [(0,0),(0,1),(1,1),(1,2),(1,3),(1,4)] 并且障碍物在单元格 (1,2) 上所以字符会 [(0,0),(0,1),(1,1)] 搜索新路径,例如 [(1,1),(2,1),(2,2),( 1,3),(1,4)] 所以我需要从旧路径 (1,1),(1,2),(1,3),(1,4) 替换为 (1,1),( 2,1),(2,2),(1,3),(1,4)
【问题讨论】:
-
我很好奇您为什么将
path设为指向列表的指针,而不是列表? -
你到底想做什么?为什么会出现问题(当您遇到障碍物时,您的路径会到达障碍物,只需后退一步再试一次)?我隐约觉得你在找
std::list::splice,但从你的问题很难看出。 -
@us2012 我添加了我想要实现的目标