C++密集索引地图
Dense Index Map in C++
我很难找到一种容器,也许我使用的命名不正确。
有谁知道像 std::map 这样的C++容器,但密钥是整数类型。它具有 O(1) 按索引插入、删除和检索的复杂性。 它的迭代器应该遍历由 index(key) 映射的元素。此外,它还应该以有序的方式循环访问索引。它应该是随机访问的,并且具有 O(1) 复杂性才能移动到任意位置。
我愿意考虑迭代器是双向的,并且其递增/递减具有 O(1) 复杂度的情况。
你在问不可能的事情
按顺序O(1)
删除、插入、搜索和迭代,将通过推送所有元素,然后按顺序迭代来实现O(n)
排序。
整数排序已知的最佳算法是O(n * sqrt(loglogn))
,所以如果我们有你描述的东西 - 它将击败最著名的整数排序算法。
编辑(根据您对问题的评论):
如果你可以使用O(1)
搜索/查找/插入,而不保证迭代顺序 - 你可以使用unordered_map,它实现了哈希表。
相关文章:
- 数组索引的值没有增加
- 为什么不;名字在地图上是按顺序排列的吗
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 基于多个条件处理地图中的所有元素
- 查找最接近的大于当前数字的数字的索引
- 在C++中将矢量转换为嵌套地图
- 在C++中调整向量中的索引
- 重载元组索引运算符-C++
- 给定一个向量,如何找到该向量的所有子集和的原始索引
- 为std::string的某个索引赋值
- 并行用于C++17中数组索引范围内的循环
- 跟随整数索引列表的自定义类迭代器
- 数组索引在地图上不是整数
- C++密集索引地图
- 地图索引上的算术运算,cpp
- 如何打印地图的索引
- 如何在C++中创建从地图到映射的倒排索引
- C++二维地图找到给定索引的所有相邻方块
- 使用 GDB 的 Python 漂亮打印不支持地图的索引运算符 []
- 将地图转换为顶点索引不起作用