したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

管理人の独り言(プログラミング関連)

1621 ◆adhRKFl5jU:2009/03/10(火) 20:26:13
std::pair<bool, unsigned long long int> GetHash(const wchar_t *str){
typedef std::pair<bool, unsigned long long int> rettype;

std::size_t len = std::wcslen(str);
unsigned long long int v = 0x0123456789ABCDEFLL;
for(std::size_t i = 0; i < len; ++i){
v = v * 137 + str[i] * 581;
}

return rettype(true, v);
}

std::pair<bool, unsigned long long int> GetHash(const char *str){
typedef std::pair<bool, unsigned long long int> rettype;

int size = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
if(size == 0){
return rettype(false, 0LL);
}
wchar_t *buff = (wchar_t*)std::malloc(sizeof(wchar_t) * size);
if(buff == NULL){
return rettype(false, 0LL);
}

int copyed = MultiByteToWideChar(CP_ACP, 0, str, -1, buff, size);
if(copyed == 0 || size != copyed){
std::free(buff);
return rettype(false, 0LL);
}

rettype ret = GetHash(buff);

std::free(buff);
return ret;
}


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板