【发布时间】:2020-04-17 08:47:49
【问题描述】:
在我的项目中,需要唯一标识字符串。我想知道是否有任何简单的方法来表示具有唯一整数值的唯一字符串。也许它与字符的 ASCII 值有关,但我不知道该怎么做。 例如:我希望字符串“ankit”以唯一值表示。这个唯一的整数值应该只代表字符串“ankit”。而且我还想将此唯一的 int 转换为与之关联的正确字符串。我希望你明白。如果没有你可以问。
最大字符串长度为 32。
举个例子:
假设我们有 4 个字符串。 "ankit" 的值为 5。下一个输入是"John",值为6。下一个输入是"ankit",其值为3,然后是"ankit",其值为3。所以我想要将相应字符串的累积总和存储在单个数组中各自出现的位置。
这里将创建一个大小为 n(字符串数)的数组。 arr[n] 它将存储arr[0]=5,arr[1]=6,arr[2]=8,arr[3]=11。
【问题讨论】:
-
使用标准库是简单的方法,但无论如何我仍然试图了解你真正想要做什么。请添加一个示例,到目前为止您编写的任何代码都会有所帮助
-
字符串可以是任意大小。因此,要将任何字符串表示为整数,您还需要可以是任意大小的整数。 C++ 没有内置此功能,您需要第三方库,例如 MPIR 或 GMP。但我想你可能并不真的需要这个。请解释你真正想要做什么,也许有人可以提出比你目前正在尝试的更好的方法。
-
@AnkitMishra 但是哈希不是唯一的,它们不能被反转。你不能从散列回到字符串。请仔细解释你真正想要做什么,目前我们只是猜测。
-
你不需要哈希:
std::unorderd_map<std::string, int>是你可以使用的。 -
map["ankit"] += 5; map["John"] += 6; map["ankit"] += 3
标签: c++ string int integer ascii