CMiimalPerfectHashigLibrary(CMPH)是一个可移植的基于LGPL协议发布的C语言的哈希函数库。该库封装了最新而且最高效的算法,易用,稳定、快速。
示例代码:
#iclude<cmph.h>#iclude<strig.h>//Createmiimalperfecthashfuctiofromi-memoryvectoritmai(itargc,char**argv){//Creatigafilledvectorusigediti=0;costchar*vector[]={"aaaaaaaaaa","bbbbbbbbbb","cccccccccc","dddddddddd","eeeeeeeeee","ffffffffff","gggggggggg","hhhhhhhhhh","iiiiiiiiii","jjjjjjjjjj"};usigeditkeys=10;FILE*mphf_fd=fope("temp.mph","w");//Sourceofkeyscmph_io_adapter_t*source=cmph_io_vector_adapter((char**)vector,keys);//Createmiimalperfecthashfuctiousigthebrzalgorithm.cmph_cofig_t*cofig=cmph_cofig_ew(source);cmph_cofig_set_algo(cofig,CMPH_BRZ);cmph_cofig_set_mphf_fd(cofig,mphf_fd);cmph_t*hash=cmph_ew(cofig);cmph_cofig_destroy(cofig);cmph_dump(hash,mphf_fd);cmph_destroy(hash);fclose(mphf_fd);//Fidkeymphf_fd=fope("temp.mph","r");hash=cmph_load(mphf_fd);while(i<keys){costchar*key=vector[i];usigeditid=cmph_search(hash,key,(cmph_uit32)strle(key));fpritf(stderr,"key:%s--hash:%u\",key,id);i++;}//Destroyhashcmph_destroy(hash);cmph_io_vector_adapter_destroy(source);fclose(mphf_fd);retur0;}






评论