ベクトルを反復処理して、最初に出現したオブジェクトを削除しようとしています。(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&)' です