⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gist_htab.cc

📁 Libgist is an implementation of the Generalized Search Tree, a template index structure that makes i
💻 CC
字号:
// gist_htab.cc// Copyright (c) 1997, Regents of the University of California// $Id: gist_htab.cc,v 1.4 1998/06/18 00:54:26 aoki Exp $#ifdef __GNUG__#pragma implementation "gist_htab.h"#endif#include "gist_htab.h"gist_htab::gist_htab(){    reset();}voidgist_htab::reset(){    for (int i = 0; i < GISTBUFS; i++) {        tab[i].key = 0;        tab[i].value = 0;        tab[i].inUse = false;    }}gist_htab::~gist_htab(){}intgist_htab::hash(shpid_t key){    return key % GISTBUFS;}intgist_htab::operator[](shpid_t page){    int index = hash(page);    int cnt = 0;    while ((!tab[index].inUse || tab[index].key != page) && cnt < GISTBUFS) {	index = (index + 1) % GISTBUFS;        cnt++;    }    if (cnt == GISTBUFS) {        return -1;    } else {        return tab[index].value;    }}voidgist_htab::add(shpid_t key, int value){    int index = hash(key);    int cnt = 0;    while (tab[index].inUse && cnt < GISTBUFS) {        index = (index + 1) % GISTBUFS;	cnt++;    }    assert(cnt != GISTBUFS);    assert(!tab[index].inUse);    tab[index].key = key;    tab[index].value = value;    tab[index].inUse = true;}voidgist_htab::remove(shpid_t key){    int index = hash(key);    int cnt = 0;    while ((!tab[index].inUse || tab[index].key != key) && cnt < GISTBUFS) {        index = (index + 1) % GISTBUFS;	cnt++;    }    if (tab[index].key == key) {        tab[index].inUse = false;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -