gpt4 book ai didi

C++在列表中找到 double

转载 作者:搜寻专家 更新时间:2023-10-31 01:09:44 26 4
gpt4 key购买 nike

我必须找出我的 list<SnakeParts> 中是否有 double 如果有 double ,则将 alive 设置为 false

我尝试使用 unique() list 的功能并添加了一个 operator==()到我的类(class)。现在,当我执行 unique 函数时,我不会过滤掉 double 。经过一些调试,我发现 ==比较器只执行与我的列表中的对象一样多的次数我使用了以下代码:

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 );
}

但这行不通。那么我做错了什么,或者还有其他方法可以做到这一点吗?

最佳答案

std::list::unique 仅适用于连续的重复项。比如说,如果我们有一个 {1, 2, 2, 1},在调用 unique 之后我们得到了 {1, 2, 1}。您可以使用 sort 函数 before(N * log(N) + N complexity) ,或使用 std::map 来计算每个元素列表(线性,+ N 内存(在最坏的情况下))。

关于C++在列表中找到 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com