如何从双端队列中删除随机元素

时间:2014-03-31 23:45:17

标签: c++ object visual-c++ elements deque

在我的项目中,我正在使用带有对象双端队列的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适用于我制作的每个汽车对象的第二个数字。

1 个答案:

答案 0 :(得分:2)

您可以尝试以下代码:

for ( iter = card.begin(); iter != card.end() ; )
     (iter->getnum2() == 60) ? iter = card.erase(iter) : ++iter;