[英]how to remove an item from a std::list
我的代码:
using namespace std;
class A{public:
int a;
A(int itemA) {a=itemA;}
};
class B:A{public:
int b;
B(int itemA, int itemB) {a=itemA; b=itemB;}
};
class C{
list<A> a;
list<B> b;
void transferAB(const A& pA, int itemb){
a.remove(pA);
b.push_back(B(pA.a, itemb));
}
我该如何工作?
list
不知道如何比较您的对象。 您需要为您的类指定一个相等运算符( operator==
)。
您可以通过存储指向对象的指针来避免这种情况,并且在调用remove
时list
将比较指针。 由于指针只是数字,所以比较没有问题。
a.remove(pA);
正如Esthete所建议的那样,您需要A
重载operator ==
,或者使用remove_if
,这可以接收谓词并将谓词传递给它。 http://cplusplus.com/reference/stl/list/remove_if/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.