我必须创建一个名为&#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。:如果有拼写错误和东西,我试图从法语手动翻译我的代码。
答案 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用于创建函数包装器。我不知道在这个例子中可以绑定什么。