【发布时间】:2013-05-22 16:12:04
【问题描述】:
我必须找出我的list<SnakeParts> 中是否有双打,如果有双打则设置为 false
我尝试了list 的unique() 函数,并在我的班级中添加了operator==()。
现在,当我执行独特的功能时,我不会过滤掉双打。经过一些调试后,我发现== 比较器的执行次数与列表中的对象一样多,我使用了以下代码:
list<SnakePart> uniquelist = m_snakeParts;
uniquelist.unique();
if (m_snakeParts.size() != uniquelist.size()){
alive = false;
}
运营商:
bool SnakePart::operator==(const SnakePart& snakePart) const{
return (x == snakePart.x && y == snakePart.y );
}
但这不起作用。那么我做错了什么,还是有其他方法可以做到这一点?
【问题讨论】:
-
相关:stackoverflow.com/questions/4877504/… ...另外,这是蛇游戏吗?如果是这样,您应该只检查头部(列表的第一个)在列表中没有重复