在c ++中从字符串生成唯一无符号整数的最佳方法是什么?

Cha*_*lie 6 c++ theory string int

我不需要代码(如果你愿意,可以在代码中提供示例),但我想要理论.

让我假装我有以下功能:

UINT GenerateID(const char * string);
Run Code Online (Sandbox Code Playgroud)

我希望函数的结果看起来完全随机.我明白不可能是独一无二的,但这是我解释自己愿望的最佳方式.

GenerateID("123"); //Could result in 999
GenerateID("123"); //Must also result in 999
GenerateID("124"); //Should result in something completely different
Run Code Online (Sandbox Code Playgroud)

当我自己尝试时,结果总是具有大致相同的数字量.

小智 5

你正在寻找一个哈希函数.哈希函数接受任意长度的输入并将其转换为唯一数字(通常为十六进制).

查看此页面以获取SHA-1哈希工作原理的示例:http://hash.online-convert.com/sha1-generator

  • 只是"独特"_不是(并且不能)得到保证. (2认同)