gpt4 book ai didi

c++ - 在 find_if 中使用仿函数

转载 作者:行者123 更新时间:2023-11-28 04:43:55 37 4
gpt4 key购买 nike

<分区>

我想知道如何使用模板仿函数作为 find_if 的参数。我不确定语法。

例如,假设一个仿函数从产品的多重映射中删除一个产品。为此,我必须“扫描”多重图,找到乘积(使用我的等量仿函数)并将其删除。

这是我的“相等”仿函数:

class isEqual
{
public:
isEqual(T* t) : t_(t) {}

bool operator()(const pair<int, T*> pair) const
{
return (pair.second == t_);
}

private:
T* t_;
};

这是一个叫做“删除乘积”的仿函数,我必须在其中使用我的“等于”乘积:

class EraseProduct
public:
EraseProduct(multimap <int, Produit*>& multimap) : multimap_(multimap) {} ; // constructor that initializes 'multimap_' attribute

multimap <int, Product*>& operator()(Product* product)
{
auto it = find_if(multimap_.begin(), multimap_.end(), USE_EQUAL_FUNCTOR_HERE)

if (it != multimap_.end)
multimap_.erase(it)

return multimap_;

}
private:
multimap<int, Product*>& multimap_;

Product 是一个类。所以我的问题是我在哪里写了“USE_EQUAL_FUNCTOR_HERE”。我想不出正确的语法。我试过:

IsEqual(), IsEqual(product)

还有一些其他的东西。

提前致谢!

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