从自定义数据类型中删除Vector数组C ++

时间:2015-05-07 10:24:12

标签: c++ arrays vector

我很难从我的Customer矢量数组中删除。

它被定义为:

vector<Customer> VecCustomerCollection;

客户是一个对象(存储每个客户的信息)

目前正试图像这样删除:

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

但是这会产生很多错误(我读到我需要重载它,但不确定如何)

我也尝试过使用迭代器并迭代向量的方法(因为每个值都是唯一的)。

但是也行不通,并且整个下午都试着让它发挥作用。

有关如何使其发挥作用的任何见解?谢谢!

1 个答案:

答案 0 :(得分:1)

您必须为类operator ==定义Customer或定义一些将替换此运算符的谓词。在最后一种情况下,您必须使用算法std::remove_if而不是std::remove

简而言之,您应该决定如何比较Customer类型的对象。编译器无法决定如何比较对象。

考虑到存在拼写错误

VecCustomerCollection.erase(emove(VecCustomerCollection...
                            ^^