gpt4 book ai didi

c++ - std::map::find 性能是否取决于 key 大小?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:32 25 4
gpt4 key购买 nike

假设我有以下 map 定义:

std::map<string,Storage>

其中 keyStorage 类实例的字符串表示。
我的问题是,即使它说 map::find 复杂性大小是对数string 大小对性能有影响吗?

我之所以有这个 map 是为了能够快速访问 Storage 类实例。但是,如果 Storage 类的字符串表示很长怎么办?是否存在最大字符串大小,如果超过该大小,则 map 的使用变得多余?

注意事项

我的直觉告诉我,如果 Storage 类的字符串表示很长,那么使用 operator== 比较类本身将是也很贵。所以无论字符串有多长,我都最好使用 map

最佳答案

是的, map 必须对键进行小于比较。这是一个字典顺序比较,是线性 WRT 字符串大小。

这不影响find方法的时间复杂度,指的是需要比较的次数。它影响常数因子。

这在您的应用程序中是否重要应根据经验确定。

关于c++ - std::map::find 性能是否取决于 key 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22607076/

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