C++密集索引地图

Dense Index Map in C++

本文关键字:地图 索引 C++      更新时间:2023-10-16

我很难找到一种容器,也许我使用的命名不正确。

有谁知道像 std::map 这样的C++容器,但密钥是整数类型。它具有 O(1) 按索引插入、删除和检索的复杂性。 它的迭代器应该遍历由 index(key) 映射的元素。此外,它还应该以有序的方式循环访问索引。它应该是随机访问的,并且具有 O(1) 复杂性才能移动到任意位置。

我愿意考虑迭代器是双向的,并且其递增/递减具有 O(1) 复杂度的情况。

你在问不可能的事情

按顺序O(1)删除、插入、搜索和迭代,将通过推送所有元素,然后按顺序迭代来实现O(n)排序。

整数排序已知的最佳算法是O(n * sqrt(loglogn)),所以如果我们有你描述的东西 - 它将击败最著名的整数排序算法。


编辑(根据您对问题的评论):

如果你可以使用O(1)搜索/查找/插入,而不保证迭代顺序 - 你可以使用unordered_map,它实现了哈希表。