C++ 我能比简单的哈希表更快地将随机字符串映射到两个类吗?

C++ 我能比简单的哈希表更快地将随机字符串映射到两个类吗?,c++,algorithm,hashmap,C++,Algorithm,Hashmap,我有大量固定长度的随机字符串(要处理10米以上的字符串,32个字符,大约200k个唯一字符串),我想将它们映射到两个类别。我知道哪些随机字符串映射到哪个类别,我希望能够在这些字符串中流式传输,并尽快获得它们的类别 目前,我正在使用一个从字符串到0/1的哈希表(C++无序映射)。我是否可以做任何预处理,或者我只映射到两个类别,这样可以更有效地进行预处理?有多种方法可以提高效率: 您可能能够找到更快/更好的哈希算法和/或针对您的用例的通常更快的哈希映射实现 预计算每个字符串的哈希并将其存储在包装器

我有大量固定长度的随机字符串(要处理10米以上的字符串,32个字符,大约200k个唯一字符串),我想将它们映射到两个类别。我知道哪些随机字符串映射到哪个类别,我希望能够在这些字符串中流式传输,并尽快获得它们的类别


目前,我正在使用一个从字符串到0/1的哈希表(C++无序映射)。我是否可以做任何预处理,或者我只映射到两个类别,这样可以更有效地进行预处理?

有多种方法可以提高效率:

  • 您可能能够找到更快/更好的哈希算法和/或针对您的用例的通常更快的哈希映射实现
  • 预计算每个字符串的哈希并将其存储在包装器结构中可能会提高性能,因为每个字符串只计算一次哈希
  • 根据您如何确定哪个字符串与哪个类别相关,有限状态机可以替换哈希映射(可以是从几个简单分支到像regex这样复杂的东西)
  • 可能还有更多的方法来提高性能,但我现在还没有想到

哪些优化(如果有的话)实际上提高了性能需要测试。这些正是我要首先尝试的内容。

您尝试过向量吗?请切换字符串中的第一个不同字母。