gpt4 book ai didi

c++ - 我的谓词函数有什么问题?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:50 25 4
gpt4 key购买 nike

我正在尝试通过 std::list 使用“remove_if”方法。我想删除“特殊”元素。这里有一些代码:

Class A {
public:
void foo(size_t id) {
tasks.remove_if(&A::IsEqual(id)); //Here I have an error
}

private:
std::list<Task> tasks;
struct IsEqual {
IsEqual(const Task& value) : _value(value) {}
bool operator() (const size_t id) {
return (_value._id == id);
}
Task _value;
};
};

谁能解释一下错误在哪里?

最佳答案

您的 operator() 应该采用 Task 参数,因为这是 tasks 中元素的类型。

另一种写法:

tasks.remove_if([id](const Task& t) { return t._id == id });

关于c++ - 我的谓词函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917739/

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