首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于list中remove的有关问题

2013-07-08 
关于list中remove的问题定义一个类class A{public:int adouble b}对A建立一个链表:listAlistOfA重新

关于list中remove的问题
定义一个类

class A
{
    public:
          int a;
          double b;

};


对A建立一个链表:list<A>listOfA
重新写==操作符:
operator==(int b)
{
return(a == b);
}
我希望比如删除链表中a为2的元素:listOfA.remove(2)
但是编译器报错,求教!
[解决办法]
1. 重载需要重载 A 和 A 的 ==, 不是 A 和 int 的.
2. remove 的时候传一个 A 的对象, 不是 int 进去.
3. 如果你实在想传 int 给 remove, 为 A 定义一个接受 int 参数的构造函数, 并把参数赋值给 a 成员.
[解决办法]
list<A> 的remove的参数是 const A&
可以考虑用remove_if

热点排行