我想在32位应用程序中生成任何有限的std :: string size唯一id(即大小为6)。什么是最好和最快的方法呢?
答案 0 :(得分:7)
查找字符串的散列,例如Jenkins hash function。
但是你从不获得独特的哈希值,因为字符串可能比你的大小6长得多,Pigoenhole lemma显示哈希必须碰撞结果。
答案 1 :(得分:1)
很难从你的问题中判断出你在问什么,但是下面按顺序“1”,“2”,“3”生成字符串:
#include <string>
#include <sstream>
std::string GetUniqueId() {
static int n = 1;
std::ostringstream os;
os << n++;
return os.str();
}