我了解 C++ 中集合的用法,但为什么存在多重集合?多重集有用的现实世界应用有哪些?
这个论点也可以扩展到无序的多重集,那么与使用向量有什么区别,它提供了哪些优点和缺点?
我了解 C++ 中集合的用法,但为什么存在多重集合?多重集有用的现实世界应用有哪些?
这个论点也可以扩展到无序的多重集,那么与使用向量有什么区别,它提供了哪些优点和缺点?
因为您不必将单元素对象存储在多集合中。您正在考虑在多集中存储类似字符串的内容。但这不是它的目的。您可以拥有任何您想要的结构,并与结构中的单个元素进行比较。
例如:
struct PhoneBookEntry
{
std::string name;
std::string phoneNumber;
}
在这个幼稚的“电话簿”条目中,没有理由在电话簿中为每个姓名添加一个条目。可能有很多。因此,您制作 a multiset
of PhoneBookEntry
,并将比较器制作为 by name
。这样,您可以拥有多个同名的电话号码。
现在你可能会认为地图更适合这个,当然。但这只是一个例子。如果您的结构不需要键/值,但需要每个键具有多个元素的集合的搜索属性,则使用多重集。