亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hngenericarray.hh

?? SR-tree is an index structure for high-dimensional nearest neighbor queries
?? HH
字號:
/*
 * HnGenericArray.hh
 * Copyright (C) 1999 Norio Katayama
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 * MA 02111-1307, USA
 *
 * 11/23/95 katayama@rd.nacsis.ac.jp
 * $Id: HnGenericArray.hh,v 1.3 2002/09/11 02:55:24 katayama Exp $
 */

#ifndef _HnGenericArray_hh
#define _HnGenericArray_hh

#ifndef _HNSRTIMP
#ifdef _MSC_VER
#define _HNSRTIMP _declspec(dllimport)
#else
#define _HNSRTIMP
#endif
#endif

#include "HnSRTree/HnPointer.hh"

/*
 * HnGenericArrayHandler
 */

struct HnGenericArrayHandler {
    char *(*getClassName)(void);
    void *(*allocateArray)(int len);
    void (*releaseArray)(void *array);
    void *(*getElementAt)(void *array, int index);
    void (*assignElement)(void *dst, void *src);
    HnBool (*equalElements)(void *element1, void *element2);
    HnString (*elementToString)(void *element);
};

/*
 * HnGenericArray
 */

class _HNSRTIMP HnGenericArray: public HnPointer {
private:
    friend class HnGenericArrayObj;
    HnGenericArray(const HnGenericArrayObj *ptr) {
	HnPointer::assign((HnObject *)ptr);
    }
    HnGenericArrayObj *getObject(void) const {
	return (HnGenericArrayObj *)HnPointer::getObject();
    }

public:
    static const HnGenericArray null;
    HnGenericArray(void) {}

public:
    /* array and length */
    void *getArray(void) const;
    int getLength(void) const;

    /* getElementAt */
    void *getElementAt(int index) const;

    /* utilities */
    HnBool equals(const HnGenericArray &ptr) const;
    HnString toString(void) const;
};

/*
 * HnGenericArrayObj
 */

class HnGenericArrayObj: public HnObject {
private:
    const HnGenericArrayHandler *handler;
    void *array;
    int length;

private:
    void allocate(int len) {
	this->array = handler->allocateArray(len);
	this->length = len;
    }
    void dispose(void) {
	handler->releaseArray(array);
    }
    void assignElements(const HnGenericArray &ptr);

public:
    /* constructor and destructor */
    HnGenericArrayObj(const HnGenericArrayHandler *handler, int length);
    HnGenericArrayObj(const HnGenericArrayHandler *handler,
		      const HnGenericArray &ptr);
    ~HnGenericArrayObj(void);

    /* array and length */
    void *getArray(void) const {
	return array;
    }
    int getLength(void) const {
	return length;
    }

    /* getElementAt */
    void *getElementAt(int index) const {
	return handler->getElementAt(array, index);
    }

    /* utilities */
    HnBool equals(const HnGenericArray &ptr) const;
    HnString toString(void) const;
};

/*
 * HnGenericArray (inline methods)
 */

inline void *
HnGenericArray::getArray(void) const
{
    return getObject()->getArray();
}

inline int
HnGenericArray::getLength(void) const
{
    return getObject()->getLength();
}

inline void *
HnGenericArray::getElementAt(int i) const
{
    return getObject()->getElementAt(i);
}

inline HnBool
HnGenericArray::equals(const HnGenericArray &ptr) const
{
    return getObject()->equals(ptr);
}

/*
 * HnGenericVectorHandler
 */

struct HnGenericVectorHandler {
    char *(*getClassName)(void);
    void *(*allocateElement)(void *element);
    void (*releaseElement)(void *element);
    HnBool (*equalElements)(void *element1, void *element2);
    HnString (*elementToString)(void *element);
};

/*
 * HnGenericVector
 */

class _HNSRTIMP HnGenericVector: public HnPointer {
private:
    friend class HnGenericVectorObj;
    HnGenericVector(const HnGenericVectorObj *ptr) {
	HnPointer::assign((HnObject *)ptr);
    }
    HnGenericVectorObj *getObject(void) const {
	return (HnGenericVectorObj *)HnPointer::getObject();
    }

public:
    static const HnGenericVector null;
    HnGenericVector(void) {}

public:
    /* editing */
    void removeAllElements(void);
    void addElement(void *newElement);
    void addElements(const HnGenericVector &ptr);
    void insertElementAt(void *newElement, int index);
    void removeElementAt(int index);
    void setElementAt(void *newElement, int index);
    void swapElementsAt(int i, int j);
    void setSize(int newSize);

    /* reading */
    int size(void) const;
    void *elementAt(int i) const;

    /* utilities */
    HnBool equals(const HnGenericVector &ptr) const;
    int indexOf(void *element, int fromIndex) const;
    void *lastElement(void) const;
    HnString toString(void) const;
};

/*
 * HnGenericVectorObj
 */

class HnGenericVectorObj: public HnObject {
private:
    const HnGenericVectorHandler *handler;
    void **array;
    int length;
    int allocatedSize;

    static const int initialSize;

    void initialize(void);
    void dispose(void);
    void ensureSize(int requiredSize);

public:
    /* constructor and destructor */
    HnGenericVectorObj(const HnGenericVectorHandler *handler);
    HnGenericVectorObj(const HnGenericVectorHandler *handler,
		       const HnGenericVector &ptr);
    ~HnGenericVectorObj(void);

    /* editing */
    void removeAllElements(void);
    void addElement(void *newElement);
    void addElements(const HnGenericVector &ptr);
    void insertElementAt(void *newElement, int index);
    void removeElementAt(int index);
    void setElementAt(void *newElement, int index);
    void swapElementsAt(int i, int j);
    void setSize(int newSize);

    /* reading */
    int size(void) const { return length; }
    void *elementAt(int i) const {
#ifdef DEBUGGING
	if ( i < 0 || i >= length ) {
	    HnAbort("%s::elementAt: index is out of bounds.",
		    handler->getClassName());
	}
#endif
	return array[i];
    }

    /* utilities */
    HnBool equals(const HnGenericVector &ptr) const;
    int indexOf(void *element, int fromIndex) const;
    void *lastElement(void) const;
    HnString toString(void) const;
};

/*
 * HnGenericVector (inline methods)
 */

inline void
HnGenericVector::removeAllElements(void)
{
    getObject()->removeAllElements();
}

inline void
HnGenericVector::addElement(void *newElement)
{
    getObject()->addElement(newElement);
}

inline void
HnGenericVector::addElements(const HnGenericVector &ptr)
{
    getObject()->addElements(ptr);
}

inline void
HnGenericVector::insertElementAt(void *newElement, int index)
{
    getObject()->insertElementAt(newElement, index);
}

inline void
HnGenericVector::removeElementAt(int index)
{
    getObject()->removeElementAt(index);
}

inline void
HnGenericVector::setElementAt(void *newElement, int index)
{
    getObject()->setElementAt(newElement, index);
}

inline void
HnGenericVector::swapElementsAt(int i, int j)
{
    getObject()->swapElementsAt(i, j);
}

inline void
HnGenericVector::setSize(int newSize)
{
    getObject()->setSize(newSize);
}

inline int
HnGenericVector::size(void) const
{
    return getObject()->size();
}

inline void *
HnGenericVector::elementAt(int i) const
{
    return getObject()->elementAt(i);
}

inline HnBool
HnGenericVector::equals(const HnGenericVector &ptr) const
{
    return getObject()->equals(ptr);
}

inline int
HnGenericVector::indexOf(void *element, int fromIndex) const
{
    return getObject()->indexOf(element, fromIndex);
}

inline void *
HnGenericVector::lastElement(void) const
{
    return getObject()->lastElement();
}

#endif /* _HnGenericArray_hh */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美草草影院在线视频| 久99久精品视频免费观看| 波多野洁衣一区| 国产精品久久久久久一区二区三区| 国产在线一区观看| 国产欧美日韩精品在线| 成人午夜电影网站| 亚洲乱码国产乱码精品精小说 | 久久久精品欧美丰满| 国产高清精品在线| 亚洲视频一区二区在线观看| 色偷偷一区二区三区| 午夜亚洲国产au精品一区二区| 91精品视频网| 国产a级毛片一区| 一区二区三区中文在线| 欧美精品xxxxbbbb| 国产专区欧美精品| 亚洲视频在线观看一区| 欧美肥胖老妇做爰| 国产成人av网站| 亚洲一区二区美女| 亚洲精品在线三区| 色乱码一区二区三区88| 日韩av中文字幕一区二区三区| 精品对白一区国产伦| jizzjizzjizz欧美| 丝袜亚洲另类欧美| 日本中文字幕不卡| 久久久亚洲欧洲日产国码αv| 91色.com| 久久超碰97中文字幕| 自拍视频在线观看一区二区| 欧美老肥妇做.爰bbww视频| 国产激情视频一区二区在线观看| 亚洲情趣在线观看| 久久综合九色综合欧美亚洲| 色综合久久久久网| 国产精品一区一区三区| 亚洲国产视频网站| 国产精品嫩草影院com| 欧美久久一二三四区| av中文一区二区三区| 美女视频黄a大片欧美| 亚洲欧洲无码一区二区三区| 精品裸体舞一区二区三区| 色呦呦网站一区| 国产成人av一区二区三区在线 | 国产精品亚洲第一| 婷婷激情综合网| 综合久久综合久久| 国产婷婷色一区二区三区| 91精品国产综合久久福利软件 | 亚洲午夜免费电影| 欧美激情综合网| 日韩一区二区精品| 欧美另类变人与禽xxxxx| 色综合一个色综合| 成人激情图片网| 欧美日韩一级二级| 99re66热这里只有精品3直播 | 国产成人精品影院| 久久97超碰色| 舔着乳尖日韩一区| 亚洲6080在线| 亚洲主播在线观看| 一区二区三区中文免费| 亚洲欧洲精品一区二区精品久久久| 久久先锋影音av鲁色资源网| 欧美不卡一区二区三区| 91精品婷婷国产综合久久性色| 欧美色中文字幕| 欧美三级蜜桃2在线观看| 91久久精品国产91性色tv| av亚洲精华国产精华| 国产成人免费在线观看| 国产精品自拍网站| 国产精品资源在线观看| 国产黑丝在线一区二区三区| 国内精品伊人久久久久av影院| 精品亚洲免费视频| 久久99日本精品| 国产一区二区精品在线观看| 国产一二三精品| 国产一区二区免费看| 懂色一区二区三区免费观看| 成人小视频在线| zzijzzij亚洲日本少妇熟睡| 91亚洲精华国产精华精华液| 91香蕉视频污| 欧美日韩久久久一区| 91精品综合久久久久久| 欧美成人一区二区| 国产情人综合久久777777| 国产精品视频你懂的| 亚洲精品你懂的| 亚洲成人在线网站| 久草这里只有精品视频| 国产成人精品免费视频网站| 99久久精品免费看| 欧美色男人天堂| 日韩欧美国产成人一区二区| 2022国产精品视频| 最新日韩av在线| 五月天激情综合| 国产麻豆视频精品| 精品国产自在久精品国产| 日本一区免费视频| 亚洲一区免费观看| 国精品**一区二区三区在线蜜桃| 成人黄色大片在线观看| 欧美日韩精品久久久| 精品国产乱码久久久久久1区2区 | 91麻豆精品91久久久久久清纯| 久久久五月婷婷| 亚洲一区二区三区在线看| 日本人妖一区二区| 不卡电影免费在线播放一区| 欧洲人成人精品| 久久久久久久久久久99999| 亚洲美女少妇撒尿| 国模套图日韩精品一区二区| 色欧美片视频在线观看| 日韩视频不卡中文| 亚洲欧美一区二区三区国产精品| 五月婷婷久久丁香| 99久久亚洲一区二区三区青草| 欧美精品tushy高清| 中文字幕在线观看一区二区| 日韩激情在线观看| 91视频在线看| 国产亚洲一二三区| 丝袜美腿高跟呻吟高潮一区| 成人深夜福利app| 欧美本精品男人aⅴ天堂| 亚洲精品视频在线看| 国产精品1024| 欧美成人福利视频| 亚洲午夜久久久久久久久久久| 国产91丝袜在线观看| 日韩免费在线观看| 日日噜噜夜夜狠狠视频欧美人| 99精品视频一区二区三区| 久久久久99精品一区| 免费在线观看一区二区三区| 在线看日本不卡| 中文字幕永久在线不卡| 国产成人精品一区二| 一卡二卡三卡日韩欧美| zzijzzij亚洲日本少妇熟睡| 久久人人97超碰com| 美女视频黄a大片欧美| 欧美伦理电影网| 亚洲国产欧美在线| 色婷婷av久久久久久久| 亚洲三级电影网站| www.欧美.com| 欧美国产禁国产网站cc| 国产在线看一区| 2021中文字幕一区亚洲| 久久激情五月婷婷| 精品久久久影院| 美女一区二区在线观看| 91精品国产色综合久久ai换脸| 亚洲成av人片在www色猫咪| 欧美无砖专区一中文字| 一区二区三区在线观看欧美| 色综合久久久久综合| 亚洲美女视频在线观看| 色久优优欧美色久优优| 一区二区日韩电影| 在线观看亚洲精品视频| 亚洲在线视频网站| 欧美日韩国产综合一区二区三区| 亚洲资源在线观看| 在线成人免费视频| 六月丁香婷婷久久| 久久久亚洲精品一区二区三区| 国产精品中文有码| 国产精品蜜臀在线观看| 91在线一区二区三区| 亚洲免费av在线| 欧美日本不卡视频| 久久精品国产精品亚洲红杏| 精品久久久久久亚洲综合网| 国产精品456| 中文字幕中文在线不卡住| 91视频在线观看免费| 午夜精彩视频在线观看不卡| 日韩欧美一区二区久久婷婷| 国产精品香蕉一区二区三区| 国产精品久久免费看| 欧美在线一区二区| 日韩 欧美一区二区三区| 26uuu久久天堂性欧美| 99久久综合精品| 天堂av在线一区| 国产精品入口麻豆原神| 欧美主播一区二区三区美女| 成人亚洲精品久久久久软件|