【问题标题】:Is there equivalent to C++ `unordered_map` in javascriptjavascript中是否有相当于C++`unordered_map`
【发布时间】:2021-10-09 01:48:56
【问题描述】:

MDN 开始,javascript 提供了 Map,它是 C++ 等价于 std::map。是否有与unordered_map 类似的等价物(在平均上提供 O(1) 插入/查找/删除)。

编辑:正如答案所暗示的,std::unordered_mapstd::map 更接近于 javascript Map

【问题讨论】:

  • 我想你只是在寻找Object
  • 根据Map Objects 我不会说JavaScript Map 等同于C++ std::map: "Map 对象必须使用哈希表或其他机制来实现,平均而言,提供与集合中元素数量呈次线性关系的访问时间。” JavaScript Map 可以使用哈希表来实现,在 avg 上提供 O(1) 插入/查找/删除。它不是按键排序,而是按插入时间排序。我会说 JavaScript Map 更像是 std::unordered_map 而不是 std::map

标签: javascript dictionary unordered-map


【解决方案1】:

JavaScript Map 的等价物是 C++ unordered_map,因为它提供 sub-linear access(即可能是对数但 constant in practice)并且不对其键进行排序。它保持元素的插入顺序以实现确定性执行和跨实现兼容性,但它没有排序。

在 JavaScript 中,没有与 C++ map 等效的功能,它被实现为具有可比较键的树。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 2016-11-06
    • 2010-11-19
    • 2013-12-21
    • 1970-01-01
    • 2011-10-24
    相关资源
    最近更新 更多