gpt4 book ai didi

c++11 - std::multimap 的用例

转载 作者:行者123 更新时间:2023-12-05 00:37:53 25 4
gpt4 key购买 nike

我不太明白这个数据结构的目的。 std::multimap<K, V>有什么区别和 std::map<K, std::vector<V>> . std::multiset 也是如此- 可能只是 std::map<K, int>其中 int 计算 K 的出现次数。我是否遗漏了这些结构的使用?

最佳答案

一个反例似乎是合适的。

考虑按名称分组的 AdressList 中的 PhoneEntry。

int AdressListCompare(const PhoneEntry& p1, const PhoneEntry& p2){
return p1.name<p2.name;
}

multiset<PhoneEntry, AdressListCompare> adressList;

adressList.insert( PhoneEntry("Cpt.G", "123-456", "Cellular") );
adressList.insert( PhoneEntry("Cpt.G", "234-567", "Work") );
// Getting the entries
addressList.equal_range( PhoneENtry("Cpt.G") ); // All numbers

这对于 set+count 来说是不可行的。如果不需要这种行为,您的 Object+count 方法似乎更快。例如 multiset::count() 成员状态

"Complexity: logarithmic in size + linear in count."

关于c++11 - std::multimap 的用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com