使用std :: bind

时间:2018-04-08 00:05:37

标签: c++ iterator std bind

我必须创建一个名为&#34; GetNextProduct&#34;返回&#34; next&#34;产品位于<int, Product*>的多图中(其中&#39; int&#39;键是产品参考号[number],它是Product对象的一个​​属性)。我们需要在此函数中使用std::bind(在&#34; find_if&#34;内)。

这是我做的:

Product* ProductManager::getNextProduct(Product* product) const
{

Product* productTemp;

ProductTemp->setReference(product->getReference+1);

FunctorEqual<Product> fonctEqual(productTemp);

auto it = container_.end();
while (it == container_.end())
{
    it = find_if(container_.begin(), container_.end(), fonctEqual);
    productTemp->setReference(productTemp->getReference++);
}

return it->second;
}

我认为它应该可行,但我不知道在哪里使用bind。

P.S。:如果有拼写错误和东西,我试图从法语手动翻译我的代码。

1 个答案:

答案 0 :(得分:0)

要在multimap中查找下一个元素,我将使用以下代码:

Product* ProductManager::getNextProduct(Product* product) const
{
    auto it = container_.find(product->number);
    if (it == container_.end())
        return nullptr; //element not found
    ++it;
    if (it == container_.end())
        return nullptr; //it was the last element in collection. No next element
    return it->second;
}

Bind用于创建函数包装器。我不知道在这个例子中可以绑定什么。