【问题标题】:C++ unordered_map string vs int key performanceC++ unordered_map 字符串与 int 键性能
【发布时间】:2013-03-21 21:47:43
【问题描述】:

在使用 string 和 int 键之间,性能(如果我正在执行随机查找)是否存在显着差异?在我的特殊情况下,字符串键更方便,但有点困难,我也可以使用 int 键进行设置。我只是想知道是否值得付出额外的努力。

【问题讨论】:

    标签: c++ string map int unordered-map


    【解决方案1】:

    很明显,散列和比较字符串通常比散列和比较ints 更昂贵。

    这是否对您的特定程序有任何实际意义,我们无法确定。您需要分析您的程序并自己找出答案。

    我的建议是为了清晰和易于维护而编写代码,然后分析并仅优化瓶颈。

    【讨论】:

    • 此外,散列会比比较更昂贵(并且可能更频繁)。但是,如果您无论如何都要做自己的散列,则比较将是主要区别,因为两种方法都需要散列。
    • 这在很大程度上取决于字符串的性质,以及 stdlib 的实现。如果两者都对 int 和 string 使用相同的散列函数,并且字符串的平均大小约为 int,那么事情可能无法区分。与往常一样:最好是自己测试,为自己的数据世界。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 2015-03-16
    • 1970-01-01
    相关资源
    最近更新 更多