【问题标题】:How to only make searching in std::map using a custom comparator?如何仅使用自定义比较器在 std::map 中进行搜索?
【发布时间】:2020-03-17 16:24:51
【问题描述】:

我希望 std::map 仅在搜索时使用比较器,例如包括插入操作在内的其余操作必须使用默认操作。有可能吗?

【问题讨论】:

  • 听起来你可能对multi-indexed container感兴趣
  • Ted Lyngmo 对不起,我写错了这个问题。我刚刚更正了它。
  • 你能描述一下用例吗?使用标准 map 会非常低效,但正如 @NathanOliver 指出的那样,还有其他容器。
  • 我希望 insert 搜索插入新项目的位置。它们并不是真正独立的操作。但是 NO 的链接看起来正是您想要的。
  • @ghostinecatnewyear 根据一个逻辑插入并根据另一个逻辑检索的唯一方法是对数据结构进行线性搜索。

标签: c++ algorithm stdmap


【解决方案1】:

我希望 std::map 仅在搜索时使用比较器...有可能吗?

好吧,您可以使用任何您想要的比较器在地图上进行线性搜索。但这不会像使用地图的搜索树结构那样快,它是使用地图的比较器构建的。

我有一个带有正则表达式键的映射(由字符串表示)。因此,当我想通过键查找某个值时,地图必须检查该键是否与地图的正则表达式之一匹配。

看来线性搜索确实是你需要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多