【发布时间】:2014-06-26 22:57:29
【问题描述】:
在以下代码中,我尝试擦除 templist 的特定元素。但是,仅删除列表的最后一个元素。如何删除该特定元素?
for(index1 = templist.begin(); index1 != templist.end();)
{
checkit=templist.end();
--checkit;
if((*index1).origin == (*udit).dest && sumweight + (*index1).weight <= 25000)
{
sumhr += 1 + (*udit).hr;
sumweight = sumweight + (*index1).weight;
stops++;
tour.at(i).push_back((*index1));
if(index1! = checkit)
index1 = templist.erase(index1);
else
{
templist.erase(index1);
index1 = templist.end();
}
}
else
index1++;
}
【问题讨论】:
-
不清楚您的问题是什么以及您的代码做什么(或应该做什么)。你能把你的代码减少到足够复杂来说明你的问题吗?
-
这个:
templist.erase(index1); if(index1!=checkit)不好,你刚刚删除了它!然后这个:index1++;你在 for 循环减速和循环本身中增加index1,你打算这样做吗?