2015-05-07 45 views
-2

嘗試從我的Customer向量數組中刪除非常困難。從自定義數據類型中刪除向量數組C++

它的定義爲:

vector<Customer> VecCustomerCollection; 

客戶是一個對象(存儲每個客戶的信息)

目前試圖消除像這樣:

VecCustomerCollection.erase(emove(VecCustomerCollection.begin(), VecCustomerCollection.end(), cus), VecCustomerCollection.end()); 

但是,這給了很多的錯誤(我讀過,我需要超載它,但不知道如何)

我也嘗試了使用迭代器並遍歷向量的方法(因爲每個值都是唯一的)。

然而,也不會工作,並試圖整個下午讓它工作。

任何有關如何使其工作的見解?謝謝!

回答

1

您必須爲類Customer定義operator ==或定義一些謂詞,該謂詞將替代此運算符。在最後一種情況下,您必須使用算法std::remove_if而不是std::remove

簡而言之,您應該決定如何比較Customer類型的對象。編譯器無法決定如何比較這些對象。

要考慮到有一個錯字

VecCustomerCollection.erase(emove(VecCustomerCollection... 
          ^^ 
+0

我如何定義的==操作符? –

+0

@rawrsquid_x我既不知道Customer類是如何定義的,也不知道如何比較類的兩個對象。所以我什麼都不能說。 –

+0

客戶類是這樣的:http://pastebin.com/ZTCUsYGU。 只是一個基本的類與getters和一些額外的功能。我不知道我們如何比較對象。我目前正在處理的課程如下所示:http://pastebin.com/SdYbrVtu - 正如您所看到的,我們只是傳入一個客戶對象,然後將其添加到矢量中。 –