从矢量结构中删除元素

时间:2017-03-02 17:57:05

标签: c++ vector struct erase

所以我开始学习矢量,我想从结构矢量中删除一个元素,我把它作为结构:

typedef struct Carro{
   int id, cc, cv;
   char marca[50], modelo[50];
}car;

typedef struct Condutor{
   vector<car> cars;
   int id;
   int totalC=0;
   char nome[50];
}driver;

这将删除:

for(int i=0; i< (*ptr).size(); i++){
    if((*ptr)[i].id == id){
        (*ptr).erase((*ptr).begin +i);
        verif=true;
        break;
    }
    else{
        verif=false;
    }
}

但它似乎无法正常工作,因为我在尝试运行时在擦除行中出现此错误:

invalid operands of types '<unresolved overloaded function type>' and 'int' to binary 'operator+'

如何从矢量中删除元素?

1 个答案:

答案 0 :(得分:1)

不知道ptr是什么,这有点猜测,但你可能想要而不是:

  (*ptr).erase((*ptr).begin +i);

这样:

 ptr->erase( ptr->begin() +i);

begin()是一个函数 - 您的代码会尝试将其视为函数指针。