在我的项目中,我正在使用带有对象双端队列的stl库。该程序假定删除某些对象varibles满足条件,但每次元素满足要删除的要求时,程序必须中止。这是我的程序的简化版本
int main(){
deque<Cars> card;
deque<Cars> iterator::iter
int count=0;
Cars car(14,15);
card.push_front(car);
Cars car(12,45);
card.push_front(car);
Cars car(15,60);
card.push_front(car);
Cars car(20,45)
card.push_front(car);
for(iter=card.begin();iter!=card.end();iter++){
if(iter->getnum2()==60){
card.erase(card.begin()+count);
}
count=count+1;
}
return 0;
}
请注意我必须在此中使用双端队列,在此示例中,我使用的getnum2适用于我制作的每个汽车对象的第二个数字。
答案 0 :(得分:2)
您可以尝试以下代码:
for ( iter = card.begin(); iter != card.end() ; )
(iter->getnum2() == 60) ? iter = card.erase(iter) : ++iter;