青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

aurain
技術文摘
posts - 137,  comments - 268,  trackbacks - 0

glib庫中的哈希函數(shù)和比較函數(shù)

       最近在項目中需要用到哈希表,要以ip地址構造哈希函數(shù)和比較函數(shù)。就去網(wǎng)上找了下相關的資料,看了下glib中哈希表中的實現(xiàn)方式,雖然最終沒用這個,但既然找了就順便記錄下來,方便查閱。

哈希表是一種提供key-value訪問的數(shù)據(jù)結構,通過指定的key值可以快速的訪問到與它相關聯(lián)的value值。hash表的一種典型用法就是字典,通過單詞的首字母能夠快速的找到單詞。關于哈希表的詳細介紹請查閱數(shù)據(jù)結構的相關書籍,我這里只介紹glib庫中哈希表的哈希函數(shù)和比較函數(shù)。

主要包括針對int, int64, double, string四種數(shù)據(jù)類型的處理。詳細請看下面的代碼。

 

typedef char   gchar;

typedef short  gshort;

typedef long   glong;

typedef int    gint;

typedef gint   gboolean;

 

typedef unsigned char   guchar;

typedef unsigned short  gushort;

typedef unsigned long   gulong;

typedef unsigned int    guint;

 

typedef float   gfloat;

typedef double  gdouble;

/* Define min and max constants for the fixed size numerical types */

#define G_MININT8 ((gint8)  0x80)

#define G_MAXINT8 ((gint8)  0x7f)

#define G_MAXUINT8   ((guint8) 0xff)

 

#define G_MININT16   ((gint16)  0x8000)

#define G_MAXINT16   ((gint16)  0x7fff)

#define G_MAXUINT16  ((guint16) 0xffff)

 

#define G_MININT32   ((gint32)  0x80000000)

#define G_MAXINT32   ((gint32)  0x7fffffff)

#define G_MAXUINT32  ((guint32) 0xffffffff)

 

#define G_MININT64   ((gint64) G_GINT64_CONSTANT(0x8000000000000000))

#define G_MAXINT64   G_GINT64_CONSTANT(0x7fffffffffffffff)

#define G_MAXUINT64  G_GINT64_CONSTANT(0xffffffffffffffffU)

 

typedef void* gpointer;

typedef const void *gconstpointer;

 

gboolean

g_int_equal (gconstpointer v1,

        gconstpointer v2)

{

  return *((const gint*) v1) == *((const gint*) v2);

}

 

guint

g_int_hash (gconstpointer v)

{

  return *(const gint*) v;

}

 

gboolean

g_int64_equal (gconstpointer v1,

               gconstpointer v2)

{

  return *((const gint64*) v1) == *((const gint64*) v2);

}

 

guint

g_int64_hash (gconstpointer v)

{

  return (guint) *(const gint64*) v;

}

 

gboolean

g_double_equal (gconstpointer v1,

                gconstpointer v2)

{

  return *((const gdouble*) v1) == *((const gdouble*) v2);

}

 

guint

g_double_hash (gconstpointer v)

{

  return (guint) *(const gdouble*) v;

}

 

gboolean

g_str_equal (gconstpointer v1,

        gconstpointer v2)

{

  const gchar *string1 = v1;

  const gchar *string2 = v2;

 

  return strcmp (string1, string2) == 0;

}

 

guint

g_str_hash (gconstpointer v)

{

  /* 31 bit hash function */

  const signed char *p = v;

  guint32 h = *p;

 

  if (h)

    for (p += 1; *p != '\0'; p++)

      h = (h << 5) - h + *p;

 

  return h;

}

 

posted on 2010-07-06 17:43 閱讀(3862) 評論(1)  編輯 收藏 引用 所屬分類: c/c++基礎知識

FeedBack:
# re: glib庫中的哈希函數(shù)和比較函數(shù)
2010-07-06 22:39 | 飛鴿傳書
這么好的東西,現(xiàn)在估計很少人用了,以前開發(fā)飛鴿傳書(FreeEIM)項目的時候,有考慮過使用GLIB,后來實在是能力有限,未用上。我強烈支持有能力者用這個東西。  回復  更多評論
  

<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用鏈接

留言簿(17)

隨筆分類(138)

隨筆檔案(137)

網(wǎng)絡開發(fā)

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 500742
  • 排名 - 37

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            精品99一区二区| 亚洲大片一区二区三区| 亚洲国产影院| 久久精品99国产精品日本| 欧美一区午夜视频在线观看| 国产精品成人播放| 99re6这里只有精品视频在线观看| 亚洲青色在线| 国产精品久久久久久久第一福利| 欧美日韩精品免费观看| 日韩图片一区| 亚洲精品久久视频| 午夜欧美不卡精品aaaaa| 黄色国产精品一区二区三区| 国产精品99久久久久久久vr | 亚洲国产精品久久久久秋霞影院| 欧美v国产在线一区二区三区| 午夜亚洲福利| 久久精品首页| 亚洲七七久久综合桃花剧情介绍| 日韩一级黄色大片| 影音先锋中文字幕一区二区| 欧美国产精品va在线观看| 亚洲欧美一区二区视频| 欧美jizz19hd性欧美| 欧美一区二区三区啪啪| 久久精品亚洲国产奇米99| 欧美激情二区三区| 久久综合电影| 欧美一区二区在线观看| 麻豆av一区二区三区久久| 欧美亚洲视频一区二区| 中文在线资源观看视频网站免费不卡| 狠狠狠色丁香婷婷综合激情| 亚洲黑丝在线| 久久精品观看| 亚洲黄色在线视频| 最新国产乱人伦偷精品免费网站 | 久久国产福利| 欧美午夜精品理论片a级按摩| 免费成人在线观看视频| 欧美在线一二三四区| 一本大道av伊人久久综合| 国产伦精品一区二区三区免费| 欧美一级欧美一级在线播放| 久久九九免费| 欧美与黑人午夜性猛交久久久| 亚洲第一黄网| 久久精品国产久精国产思思| 国产精品国产自产拍高清av| 亚洲人成艺术| 国产专区精品视频| 国产综合18久久久久久| 亚洲国产一区二区三区高清| 欧美在线短视频| 在线亚洲美日韩| 欧美日韩在线不卡一区| 久久激情五月婷婷| 欧美诱惑福利视频| 亚洲欧美日韩高清| 国产欧美日韩亚州综合| 国内成人自拍视频| 性娇小13――14欧美| 99热在这里有精品免费| 欧美一区国产在线| 久久久久久高潮国产精品视| 久久综合激情| 欧美精品日本| 亚洲专区一二三| 久久久精品网| 国产精品99久久久久久白浆小说| 欧美精品一区二区在线观看| 国产精品美女www爽爽爽视频| 国产美女精品视频| 久久久久久久一区二区三区| 香蕉久久久久久久av网站| 久久青青草原一区二区| 欧美成人精品一区| 亚洲人成久久| 99re热精品| 国产精品婷婷| 亚洲免费成人| 久久久久久久久一区二区| 午夜视频在线观看一区二区三区| 国产区欧美区日韩区| 久久综合九色| 欧美精品在线一区| 校园激情久久| 久久亚洲精品欧美| 欧美在线关看| 亚洲欧洲美洲综合色网| 亚洲激情成人网| 欧美色中文字幕| 亚洲丶国产丶欧美一区二区三区 | 免费成人激情视频| 99精品视频免费在线观看| 亚洲视频网站在线观看| 国内精品美女在线观看| 91久久精品一区| 国产精品毛片va一区二区三区| 久久久国产成人精品| 欧美激情一区二区三区四区| 欧美在线视屏| 日韩午夜高潮| 国产欧美日韩在线播放| 欧美激情国产日韩精品一区18| 欧美日韩在线播放一区| 麻豆免费精品视频| 国产精品男人爽免费视频1| 欧美成人a∨高清免费观看| 国产精品久久久久久影院8一贰佰| 久久婷婷成人综合色| 欧美日韩一区二区在线播放| 久久蜜臀精品av| 新狼窝色av性久久久久久| 亚洲韩国青草视频| 亚洲欧美自拍偷拍| 中文精品视频| 男女av一区三区二区色多| 久久国产精品久久w女人spa| 亚洲黄色一区| 欧美在线黄色| 一区二区三区国产盗摄| 欧美国产欧美综合 | 欧美大成色www永久网站婷| 久久精品二区亚洲w码| 欧美亚洲动漫精品| 一区二区国产日产| 国产欧美一区二区精品性| 亚洲精品欧美日韩| 欧美日韩精品伦理作品在线免费观看| 麻豆精品精品国产自在97香蕉| 国产精品视频不卡| 中文国产成人精品久久一| 99热免费精品| 欧美韩日一区| 亚洲欧洲精品一区二区三区波多野1战4 | 午夜精品久久久久久久99樱桃| 欧美成人综合| 亚洲第一在线| 亚洲剧情一区二区| 欧美日韩国产一区精品一区 | 欧美日本精品| 91久久夜色精品国产九色| 91久久久精品| 欧美激情精品久久久久久| 亚洲电影下载| 99精品欧美| 欧美性大战久久久久久久| 99在线精品观看| 欧美在线高清| 极品少妇一区二区三区精品视频 | 国产精品久久久久久久久果冻传媒| 日韩视频免费| 香蕉成人伊视频在线观看 | 国产日韩高清一区二区三区在线| 亚洲欧美另类中文字幕| 久久成人在线| 在线日韩中文字幕| 亚洲视频你懂的| 欧美一二三视频| 国产综合久久久久久| 久久久亚洲影院你懂的| 亚洲国产精品视频| 国产亚洲在线| 9色porny自拍视频一区二区| av成人免费在线观看| 久久av最新网址| 欧美黄色小视频| 亚洲一区二区三区午夜| 久久亚洲图片| 亚洲美女啪啪| 久久国产精品色婷婷| 在线日韩精品视频| 欧美午夜免费影院| 久久久国产精品一区二区中文| 亚洲午夜激情在线| 国模精品娜娜一二三区| 免费亚洲电影| 久久er精品视频| 欧美日韩一区不卡| 久久久久国产精品www| 亚洲精品少妇| 久久久亚洲精品一区二区三区| 亚洲国产精品视频一区| 国产精品入口福利| 久久人人爽人人| 亚洲一区日韩| 亚洲欧美中文日韩v在线观看| 国产欧美日韩综合精品二区| 欧美91福利在线观看| 欧美伊人久久久久久午夜久久久久 | 激情欧美日韩一区| 欧美日韩一区二区免费在线观看| 欧美一区二区久久久| 99国产欧美久久久精品| 欧美成人国产va精品日本一级| 午夜日韩在线| 亚洲一级网站| 亚洲久久在线|