直到现在,我一直认为创建一个成分集合是一个好主意,以便使所有可能的成分归类到我的库存中。并将此库存与所需成分进行比较。这样,我想减少库存中的成分数量。
Ingedients(zutat)是一类,其中包含字符串名称和数量的双精度型。
集合应包含成分。 设置
直到我遇到很多错误。我可以解决的链接器错误被写入一个新项目中。
但是我不喜欢我的祖塔课程。因为它似乎仅在我具有可以用getter调用并用setter设置的公共属性而不是私有属性的情况下才起作用。我认为这种公共属性违背了oop。
我确实重载了布尔运算符<,以仅比较成分的名称。由于我不希望在股票内持有多个股票。
但是现在我被困住了……我确实认为我可以让班级回来改变数量值。但是有了find,如果名称相等,我只会得到迭代器。 我确实认为有可能取回元素以便与堆栈的元素一起工作。由于此值是恒定的,因此比从堆栈中删除此元素要多得多,在更改定量后再重新插入该值。
如果无法使用集合中的元素,或者至少不能将它们取回。为什么还要使用它?
您建议使用什么来使我获得一系列不含重复值的成分,我可以在其中更改这些值。
答案 0 :(得分:0)
使用{em> std :: map 而不是使用 std :: set ,就像std::map<std::string, int>
一样,关键是成分的名称和价值是成分的数量。
这使您可以快速从成分名称中获取成分的数量,或修改成分的数量。
当一种成分的数量变为0时,您可以根据需要从地图中将其删除,只在库存中添加该成分
当然,您可以用更多std::map<std::string, Ingredient>
代替数量,例如{em}类别中的{em> 具有数量,其他信息也可能是成分名称。