1

我了解 C++ 中集合的用法,但为什么存在多重集合?多重集有用的现实世界应用有哪些?

这个论点也可以扩展到无序的多重集,那么与使用向量有什么区别,它提供了哪些优点和缺点?

4

1 回答 1

2

因为您不必将单元素对象存储在多集合中。您正在考虑在多集中存储类似字符串的内容。但这不是它的目的。您可以拥有任何您想要的结构,并与结构中的单个元素进行比较。

例如:

struct PhoneBookEntry
{
    std::string name;
    std::string phoneNumber;
}

在这个幼稚的“电话簿”条目中,没有理由在电话簿中为每个姓名添加一个条目。可能有很多。因此,您制作 a multisetof PhoneBookEntry,并将比较器制作为 by name。这样,您可以拥有多个同名的电话号码。

现在你可能会认为地图更适合这个,当然。但这只是一个例子。如果您的结构不需要键/值,但需要每个键具有多个元素的集合的搜索属性,则使用多重集。

于 2020-06-15T10:59:48.750 回答