我有以下的C++類,如何從C++中的對象矢量中刪除一個項目?
class rec
{
public:
int width;
int height;
};
而且在我的主要功能我有rec
對象的vector,
rec r1,r2,r3;
r1.height = r1.width = 1;
r2.height = r2.width = 2;
r3.height = r3.width = 3;
vector<rec> rvec = { r1,r2,r3 };
現在我想從rvec
刪除一個項目用下面的方法調用,
rvec.erase(remove(rvec.begin(), rvec.end(), r_remove), rvec.end());
但我得到這個錯誤:
C2678: binary '==': no operator found which takes a left-hand operand of type 'rec' (or there is no acceptable conversion)
您需要實現==操作符()爲REC類以允許rec對象之間的比較。這是刪除用來查找與r_remove匹配的條目的內容。 –
如果您無法爲您的類實現'operator ==',您也可以嘗試['std :: remove_if'](http://en.cppreference.com/w/cpp/algorithm/remove) – StoryTeller
將來的參考你應該注意到每一個算法都是它接受的類型的一組要求。閱讀文檔並瞭解這些要求是什麼。 [cppreference](http://en.cppreference.com/w/cpp/algorithm)是書籤的好地方。 – StoryTeller