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);