生成std :: string的唯一ID

时间:2010-01-23 10:46:39

标签: c++

我想在32位应用程序中生成任何有限的std :: string size唯一id(即大小为6)。什么是最好和最快的方法呢?

2 个答案:

答案 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();
}