gpt4 book ai didi

c++ - 有一张带有路径的 map 如何将它们与给定路径进行比较?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:58:35 25 4
gpt4 key购买 nike

我们有 boost 路径映射到字符串对,例如 name:location(绝对位置路径如 usr/myfolder/)。我们得到了一些位置,如 usr/myfolder/mysubfolder/myfile。如何找到最适合给定 url 的 map 位置?

示例我们有一张 map ,如果需要,我们可以使用它:

service1:myfolder/
service2:myfolder/mysubfolder/
service3:myfolder/myothersubfolder/
service4:myfolder/mysubfolder/myfile

我们得到值 myfolder/mysubfolder/myfile/blablabla/(路径)。我们想找出它与我们 map 中的哪个项目最相关。搜索结果应为 service4 作为具有最相关内容的 map 项。

那么如何根据给定的字符串值找到它与哪个 map 元素最相关呢?

所以 original question是关于一般的字符串大小写,但我进行了一些重新配置,所以不,我只是在 boost 路径上工作。

最佳答案

我真的没有现成的 C++ 答案,但我最近不得不在 C# 中做一些类似的事情,并想出了以下内容:

遍历整个 vector ,检查有趣的路径以查看它是否以元素开头。 最长 这样的匹配是赢家。这将是一个复杂度为 O(n) 的操作,具体取决于比较集中的路径数量。

我对上面的改进版本变得有点不同,因为我要检查我之前已经检查过的一些条目。

因此,我按路径长度降序对 vector 进行排序,这样我遇到的第一个匹配项也是最好的(我认为平均 O(n/2) 操作),并将结果存储到字典,所以我不需要再次暴力搜索。

希望这对您有所帮助!

关于c++ - 有一张带有路径的 map 如何将它们与给定路径进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5997723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com