我正在嘗試迭代向量並刪除對象的第一個匹配項。我一直在收到一個編譯錯誤(使用g ++),但是我正在以stackoverflow的答案和其他消息來源建議刪除它的方式將其刪除。可能有一些超級簡單的東西我錯過了,所以另一組眼睛也會很棒。C++中的向量迭代和刪除
#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;
}
編譯錯誤是 錯誤:調用「的std ::矢量::擦除(常量汽車&)」
請不要使用作業標籤。 [已過時](http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated) – chris
您應該搜索_erase/remove_成語... –
錯誤似乎不符合您的代碼。你確定你的代碼沒有說'擦除(*)'或類似的東西嗎? –