我正在尝试遍历向量并删除第一次出现的对象。我不断收到编译错误(使用 g++),但我正在按照 stackoverflow 答案和其他来源建议删除它的方式删除它。我可能缺少一些超级简单的东西,所以另一双眼睛也会很棒。
#include <iostream>
#include <vector>
#include <assert.h>
using namespace std;
bool Garage::remove(const Car &car){
assert(!empty());
int size = v.size();
for(vector<Car>::const_iterator it = v.begin(); it != v.end(); ++it){
if(it -> Car::make() == car.Car::make()){
it = v.erase(it);
assert(v.size() == size - 1);
return true;
}
}
return false;
}
编译错误是 error: no matching function for call to 'std::vector::erase(const Car&)'