Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从向量结构中删除元素_C++_Vector_Struct_Erase - Fatal编程技术网

C++ 从向量结构中删除元素

C++ 从向量结构中删除元素,c++,vector,struct,erase,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; typedef结构Carro{ int-id、cc、cv;

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

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;
typedef结构Carro{
int-id、cc、cv;
char-marca[50],modelo[50];
}汽车;
类型定义结构条件{
矢量汽车;
int-id;
整数c=0;
charnome[50];
}司机;
并删除以下内容:

for(int i=0; i< (*ptr).size(); i++){
    if((*ptr)[i].id == id){
        (*ptr).erase((*ptr).begin +i);
        verif=true;
        break;
    }
    else{
        verif=false;
    }
}
for(int i=0;i<(*ptr.size();i++){
if((*ptr)[i].id==id){
(*ptr).erase((*ptr.begin+i);
verif=真;
打破
}
否则{
verif=假;
}
}
但它似乎不起作用,因为我在尝试运行它时在擦除行中遇到了以下错误:

invalid operands of types '<unresolved overloaded function type>' and 'int' to binary 'operator+'
类型为“”和“int”的操作数对二进制“operator+”无效

如何从向量中删除元素?

在不知道什么是
ptr
的情况下,这有点像猜测,但您可能希望:

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


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

[OT]您是不是碰巧从C来的?你的代码中有两个Cc'你不需要在C++中做。甚至在C中你可以说“代码> PTR->东西< /Cord>开始())是一种方法。那个特定的错误可能是因为你写的代码>开始+ i>代码>而不是<代码>开始(+)+ i >代码>,但是除非你发布了一个MCVE,否则我们无法知道。我们没有水晶球,对您的
ptr
一无所知。是的,我忘了,ptr来自main,它是&driver。你的答案是正确的,我会给你检查,我已经在这方面花了很长时间,所有这些都是为了一个简单的()。谢谢
 ptr->erase( ptr->begin() +i);