2015-05-07 50 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 - 正如您所看到的,我们只是传入一个客户对象,然后将其添加到矢量中。 –