【发布时间】:2016-01-08 10:21:43
【问题描述】:
我有一组字符串(可能超过 10000 项)。这组数据将成为某些优化算法的输入,这意味着将对其进行许多比较操作。唯一的比较操作是相等或不相等。
问题: 从性能的角度来看:将这些字符串转换为数字(通过一种方法或另一种方法)然后对这些数字运行算法是否是个好主意?
附:直到所有字符串都变成数字所需的时间不是问题,因为我会这样做并将其再次存储在数据库中,所以这是一次性的。
【问题讨论】:
-
是的,这是个好主意,您可以简单地将它们替换为存储它们的数组中的索引并删除重复项。
-
“多次比较输入数据”是什么意思?测试某个字符串是否在字符串集中?使用预先计算的哈希值。但是简单地多次比较常量字符串是没有意义的。
-
如果有很多个比较,则从文本转换为内部格式。使用内部格式进行多次比较。
标签: c++ string performance c++11