在C ++ 11中将一百万个字符串映射到int

卡米尔·古德塞恩(Camille Goudeseune)

我有一百万个ASCII字符串,没有重复,每个字符串最多7个字节长。我需要将每个字符串映射到一个正整数。这些整数中最大的整数应不超过一百万。尽管初始化可能很慢,但是查找应该很快:给定一个字符串,返回相应的int(或-1,如果找不到)。如何在C ++ 11中实现这一点?

一种解决方案:将字符串累积到std::unordered_map<string,int>;中。然后在地图上进行迭代,并从递增计数器中分配整数。然后进行查找unordered_map::find("foo")->second但是,闻起来像其他一些容器会更快,开销也更少(内置索引,而不是手工编码)。也许unordered_set和指针算术?

范围限制似乎使完美的哈希变得困难。

(int的范围受到限制,因为它索引到传递给svm_light的特征向量。该软件不使用稀疏存储,因此具有数万亿(大部分为零)元素的向量使它用尽了内存。因此,此字符串转换为- int预处理实现了稀疏的数据结构。)

塞弗林·帕帕德

您所描述的看起来像是完美的哈希

有一些实现完美哈希的C ++库,例如用于C,C ++和Lua的Tiny完美哈希库

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用C ++ STL将C样式的字符串映射到int吗?

来自分类Dev

将单个字符串与C中的字符串数组进行比较

来自分类Dev

在C#中的字符串中将多个字符替换为多个值

来自分类Dev

在C#中将多个字符替换为字符串中的多个值

来自分类Dev

在C ++ 11中将字符串枚举

来自分类Dev

将字符串值映射到 C# 中的属性值

来自分类Dev

使用C将字符串中每个字符的位置从当前位置循环右移

来自分类Dev

typcast不会将整个字符串转换为int(在C中)

来自分类Dev

将多个字符串拆分为C#中的对象列表

来自分类Dev

将字符串插入C中的另一个字符串

来自分类Dev

我可以在列表中添加超过一百万个字符串吗?

来自分类Dev

将多个字符串读为一个字符串?C ++

来自分类Dev

[C]-将字符串拆分为2个字符串

来自分类Dev

如何在C ++中将字符串数组转换为字符串类型,如将每个元素连接成一个字符串,并在字符串上使用子字符串?

来自分类Dev

在C ++中将字符串拆分为4个字符

来自分类Dev

如何在C中的字符串数组中更改单个字符串?

来自分类Dev

C ++将一个字符串中的一个字符追加到另一个字符串

来自分类Dev

比较C中的两个字符串(字符串指针)

来自分类Dev

删除C中某个字符串的所有子字符串

来自分类Dev

C# 从多个字符串选择中返回字符串

来自分类Dev

在 C# 中将 XML 文件内容解析为单个字符串

来自分类Dev

如何将 2 个字符串合并为 1 个字符串并删除重复的字符串模式?C#

来自分类Dev

用C中的多个字符替换字符串(char数组)中的字符

来自分类Dev

用C中的多个字符替换字符串(char数组)中的字符

来自分类Dev

我想在C中将一个字符串分成两个字符串

来自分类Dev

如何在C中将多个字符串值存储为一个字符串?

来自分类Dev

在C ++中的字符串中每隔N个字符插入一个字符,更改N个字符

来自分类Dev

使用 strchr 在 c 中的 4 个字符串中搜索一个字符

来自分类Dev

从C中的SQLite回调将sqlite_exec响应的行合并为单个字符串

Related 相关文章

  1. 1

    使用C ++ STL将C样式的字符串映射到int吗?

  2. 2

    将单个字符串与C中的字符串数组进行比较

  3. 3

    在C#中的字符串中将多个字符替换为多个值

  4. 4

    在C#中将多个字符替换为字符串中的多个值

  5. 5

    在C ++ 11中将字符串枚举

  6. 6

    将字符串值映射到 C# 中的属性值

  7. 7

    使用C将字符串中每个字符的位置从当前位置循环右移

  8. 8

    typcast不会将整个字符串转换为int(在C中)

  9. 9

    将多个字符串拆分为C#中的对象列表

  10. 10

    将字符串插入C中的另一个字符串

  11. 11

    我可以在列表中添加超过一百万个字符串吗?

  12. 12

    将多个字符串读为一个字符串?C ++

  13. 13

    [C]-将字符串拆分为2个字符串

  14. 14

    如何在C ++中将字符串数组转换为字符串类型,如将每个元素连接成一个字符串,并在字符串上使用子字符串?

  15. 15

    在C ++中将字符串拆分为4个字符

  16. 16

    如何在C中的字符串数组中更改单个字符串?

  17. 17

    C ++将一个字符串中的一个字符追加到另一个字符串

  18. 18

    比较C中的两个字符串(字符串指针)

  19. 19

    删除C中某个字符串的所有子字符串

  20. 20

    C# 从多个字符串选择中返回字符串

  21. 21

    在 C# 中将 XML 文件内容解析为单个字符串

  22. 22

    如何将 2 个字符串合并为 1 个字符串并删除重复的字符串模式?C#

  23. 23

    用C中的多个字符替换字符串(char数组)中的字符

  24. 24

    用C中的多个字符替换字符串(char数组)中的字符

  25. 25

    我想在C中将一个字符串分成两个字符串

  26. 26

    如何在C中将多个字符串值存储为一个字符串?

  27. 27

    在C ++中的字符串中每隔N个字符插入一个字符,更改N个字符

  28. 28

    使用 strchr 在 c 中的 4 个字符串中搜索一个字符

  29. 29

    从C中的SQLite回调将sqlite_exec响应的行合并为单个字符串

热门标签

归档