提问人:Drew Brady 提问时间:11/12/2023 最后编辑:MatDrew Brady 更新时间:11/12/2023 访问量:61
在 STL 中选择具有尽可能快插入和查找的数据结构 [重复]
Picking a data structure in STL that has fastest possible insertion and lookups [duplicate]
问:
我正在寻找一种在 STL 中存储整数的数据结构。
我必须支持的主要操作是插入和删除,查找前 20 个元素,以及查找任何 k 的第 k 个最大元素。
我知道使用集合,我可以在对数 N 时间内实现插入和删除,在 O(1) 时间内实现前 20 名,在 O(k) 时间内实现前 k。
有没有办法选择一种可能更有能力找到前 k 个条目的数据结构?例如,选择 k = N/2---中位数---使用集合需要 O(N) 时间,但理想情况下,我们可以有更好的东西。
答:
0赞
Suhana Shaik
11/12/2023
#1
哈希表在 o(1) 时间内进行插入、删除和搜索。所以这个
评论
0赞
BoP
11/12/2023
除了 O(1) 的意思不是“快”,而是“总是需要大约相同的时间”。
0赞
Soundararajan
11/12/2023
learn.microsoft.com/en-us/cpp/standard-library/hash-map-class看起来hash_map不再可用,根据 MSDN,建议使用 unordered_map。learn.microsoft.com/en-us/cpp/standard-library/......
评论
std::set
k