摘自论坛:http://bbs.csdn.net/topics/300172062,先保存下来
强烈的推荐你使用暴雪的mpq技术
我在个人机器上实现过4000万条字符串存储,碰撞很小
需要代码的话,请留下你的邮箱
这里留下我以前用过的一个小程序,稍做修给后应该可以满足你的要求:
#include <iostream>
using namespace std;
#define nTableSize 40000000
#define nMaxStrLen 20
unsigned long cryptTable[0x1000];
typedef struct _MPQHASHTABLE
{
char bExists;
}MPQHASHTABLE;
MPQHASHTABLE HashTable[nTableSize];
int HashATable[nTableSize];
int HashBTable[nTableSize];
char data[nTableSize][nMaxStrLen];
class CHashForMpq
{
public:
int insert_string(const char *string_in)
{
const int HASH_OFFSET = 0, HASH_A = 1, HASH_B = 2;//定义哈希类型