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

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

?? arrays.h

?? hello everybody. good lucky to you
?? H
?? 第 1 頁 / 共 3 頁
字號:
/*------------------------------------------------------------------------*/
/*                                                                        */
/*  ARRAYS.H                                                              */
/*                                                                        */
/*  Copyright Borland International 1991                                  */
/*  All Rights Reserved                                                   */
/*                                                                        */
/*------------------------------------------------------------------------*/

#if !defined( __ARRAYS_H )
#define __ARRAYS_H

#define TEMPLATES

#if !defined( ___DEFS_H )
#include <_defs.h>
#endif  // ___DEFS_H

#if !defined( __RESOURCE_H )
#include <Resource.h>
#endif  // __RESOURCE_H

#if !defined( __COLLECT_H )
#include <Collect.h>
#endif  // __COLLECT_H

#if !defined( __MEM_H )
#include <Mem.h>
#endif  // __MEM_H

#if !defined( __VECTIMP_H )
#include <VectImp.h>
#endif  // __VECTIMP_H

#if !defined( __SORTABLE_H )
#include <Sortable.h>
#endif  // __SORTABLE_H

#if !defined( __ABSTARRY_H )
#include <AbstArry.h>
#endif  // __ABSTARRY_H

#pragma warn -ncf

/*------------------------------------------------------------------------*/
/*                                                                        */
/*  template <class Vect, class T> class BI_ArrayAsVectorImp              */
/*                                                                        */
/*  Implements the fundamental array operations, using a vector           */
/*  as the underlying implementation.  The type Vect specifies the        */
/*  form of the vector, either a BI_CVectorImp<T0> or a                   */
/*  BI_ICVectorImp<T0>.  The type T specifies the type of the             */
/*  objects to be put in the array.  When using BI_CVectorImp<T0>,        */
/*  T should be the same as T0. When using BI_ICVectorImp<T0>, T          */
/*  should be of type pointer to T0.  See BI_ArrayAsVector and            */
/*  BI_IArrayAsVector for examples.                                       */
/*                                                                        */
/*------------------------------------------------------------------------*/

template <class Vect, class T>
class _CLASSTYPE BI_ArrayAsVectorImp
{

public:

    BI_ArrayAsVectorImp( int upper, int lower, int delta ) :
        data( upper-lower+1,delta),
        lowerbound(lower)
        {
        }

    int lowerBound() const
        {
        return lowerbound;
        }

    int upperBound() const
        {
        return boundBase(data.limit())-1;
        }

    sizeType arraySize() const
        {
        return data.limit();
        }

    void add( T t )
        {
        data.add( t );
        }

    void addAt( T t, int loc )
        {
        data.addAt( t, zeroBase(loc) );
        }

    void detach( T t, TShouldDelete::DeleteType dt = TShouldDelete::NoDelete )
        {
        data.detach( t, dt );
        }

    void detach( int loc,
                 TShouldDelete::DeleteType dt =TShouldDelete::NoDelete
               )
        {
        data.detach( zeroBase(loc), dt );
        }

    void destroy( int i )
        {
        detach( i, TShouldDelete::Delete );
        }

    void flush( TShouldDelete::DeleteType dt = TShouldDelete::DefDelete )
        {
        data.flush( dt );
        }

    int isFull() const
        {
        return data.getDelta() == 0 && data.count() >= data.limit();
        }

    int hasMember( T t ) const
        {
        return data.find(t) != UINT_MAX;
        }

    int isEmpty() const
        {
        return data.count() == 0;
        }

    countType getItemsInContainer() const
        {
        return data.count();
        }

protected:

    T itemAt( int i ) const
        {
        return data[ zeroBase(i) ];
        }

    int find( const T t ) const
        {
        return boundBase(data.find( t ));
        }

    void reallocate( sizeType sz, sizeType offset = 0 )
        {
        data.resize( sz, offset );
        }


    void setData( int loc, T t )
        {
        PRECONDITION( loc >= lowerbound && loc <= upperBound() );
        data[ zeroBase(loc) ] = t;
        }

    void insertEntry( int loc )
        {
        PRECONDITION( loc >= lowerbound && loc <= upperBound() );
        T t;
        data.addAt( t, zeroBase(loc) );
        }

    void removeEntry( int loc )
        {
        squeezeEntry( zeroBase(loc) );
        }

    void squeezeEntry( unsigned loc )
        {
        PRECONDITION( loc < data.count() );
        data.detach( loc );
        }

    unsigned zeroBase( int loc ) const
        {
        return loc - lowerbound;
        }

    int boundBase( unsigned loc ) const
        {
        return loc == UINT_MAX ? INT_MAX : loc + lowerbound;
        }

    void grow( int loc )
        {
        if( loc < lowerBound() )
            reallocate( arraySize() + (loc - lowerbound) );
        else if( loc >= boundBase(data.limit()) )
            reallocate( zeroBase(loc) );
        }

    int lowerbound;

    Vect data;

};

/*------------------------------------------------------------------------*/
/*                                                                        */
/*  template <class T> class BI_ArrayAsVector                             */
/*                                                                        */
/*  Implements an array of objects of type T, using a vector as           */
/*  the underlying implementation.                                        */
/*                                                                        */
/*------------------------------------------------------------------------*/

template <class T> class _CLASSTYPE BI_ArrayAsVector :
    public BI_ArrayAsVectorImp<BI_CVectorImp<T>,T>
{

public:

    friend class _CLASSTYPE BI_ArrayAsVectorIterator<T>;

    BI_ArrayAsVector( int upper, int lower = 0, int delta = 0 ) :
        BI_ArrayAsVectorImp<BI_CVectorImp<T>,T>( upper, lower, delta )
        {
        }

    T& operator []( int loc )
        {
        grow( loc );
        return data[zeroBase(loc)];
        }

    T& operator []( int loc ) const
        {
        PRECONDITION( loc >= lowerbound && loc < data.count() );
        return data[zeroBase(loc)];
        }

    void forEach( void (_FAR *f)(T _FAR &, void _FAR *), void _FAR *args )
        {
        if( !isEmpty() )
            data.forEach( f, args );
        }

    T _FAR *firstThat( int (_FAR *f)(const T _FAR &, void _FAR *),
                       void _FAR *args
                     ) const
        {
        if( isEmpty() )
            return 0;
        return data.firstThat( f, args );
        }

    T _FAR *lastThat( int (_FAR * f)(const T _FAR &, void _FAR *),
                      void _FAR *args
                    ) const
        {
        if( isEmpty() )
            return 0;
        return data.lastThat( f, args );
        }

};

template <class T> class _CLASSTYPE BI_ArrayAsVectorIterator :
    BI_VectorIteratorImp<T>
{

public:

    BI_ArrayAsVectorIterator( const BI_ArrayAsVector<T> _FAR & a ) :
        BI_VectorIteratorImp<T>(a.data) {}

};

/*------------------------------------------------------------------------*/
/*                                                                        */
/*  template <class T> class BI_IArrayAsVector                            */
/*                                                                        */
/*  Implements an indirect array of objects of type T, using a vector as  */
/*  the underlying implementation.                                        */
/*                                                                        */
/*------------------------------------------------------------------------*/

template <class T> class _CLASSTYPE BI_IArrayAsVector :
    public BI_ArrayAsVectorImp<BI_ICVectorImp<T>,T _FAR *>,
    public virtual TShouldDelete
{

public:

    friend class _CLASSTYPE BI_IArrayAsVectorIterator<T>;

    BI_IArrayAsVector( int upper, int lower = 0, int delta = 0 ) :
        BI_ArrayAsVectorImp<BI_ICVectorImp<T>,T _FAR *>( upper, lower, delta )
        {
        }

    ~BI_IArrayAsVector()
        {
        flush();
        }

    T _FAR * _FAR & operator []( int loc )
        {
        grow( loc+1 );
        return data[zeroBase(loc)];
        }

    T _FAR * _FAR & operator []( int loc ) const
        {
        PRECONDITION( loc >= lowerbound && zeroBase(loc) < data.limit() );
        return data[zeroBase(loc)];
        }

    void add( T _FAR *t )
        {
        BI_ArrayAsVectorImp<BI_ICVectorImp<T>,T _FAR *>::add(t);
        }

    void addAt( T _FAR *t, int loc )
        {
        BI_ArrayAsVectorImp<BI_ICVectorImp<T>,T _FAR *>::addAt(t,loc);
        }

    void detach( int loc, DeleteType dt = NoDelete )
        {
        data.detach( zeroBase(loc), delObj(dt) );
        }

    void detach( T _FAR *t, DeleteType dt = NoDelete )
        {
        unsigned loc = data.find( t );
        if( loc == UINT_MAX )
            return;
        data.detach( loc, delObj(dt) );
        }

    void flush( DeleteType dt = DefDelete )
        {
        data.flush( delObj(dt), data.limit(), 0 );
        }

    int find( const T *t ) const
        {
        return boundBase(data.find( (T *)t ));
        }

    void forEach( void (_FAR *f)(T _FAR &, void _FAR *), void _FAR *args )
        {
        if( !isEmpty() )
            data.forEach( f, args );
        }

    T _FAR *firstThat( int (_FAR *f)(const T _FAR &, void _FAR *),
                       void _FAR *args
                     ) const
        {
        if( isEmpty() )
            return 0;
        return data.firstThat( f, args );
        }

    T _FAR *lastThat( int (_FAR * f)(const T _FAR &, void _FAR *),
                      void _FAR *args
                    ) const
        {
        if( isEmpty() )
            return 0;
        return data.lastThat( f, args );
        }

};

template <class T> class _CLASSTYPE BI_IArrayAsVectorIterator :
    public BI_IVectorIteratorImp<T>
{

public:

    BI_IArrayAsVectorIterator( const BI_IArrayAsVector<T> _FAR &a ) :
        BI_IVectorIteratorImp<T>(a.data) {}

};

/*------------------------------------------------------------------------*/
/*                                                                        */
/*  class BI_OArrayAsVector                                               */
/*                                                                        */
/*  Implements an array of pointers to Object,                            */
/*  using a vector as the underlying implementation.                      */
/*                                                                        */
/*------------------------------------------------------------------------*/

class _CLASSTYPE BI_OArrayAsVector
{

public:

    friend class _CLASSTYPE BI_OArrayAsVectorIterator;

    BI_OArrayAsVector() : oarray( DEFAULT_ARRAY_SIZE )
        {
        }

    BI_OArrayAsVector( int upr, int lwr = 0, unsigned delta = 0 ) :
        oarray( upr, lwr, delta )
        {
        }

    Object *operator [] (int loc)
        {
        return oarray[loc];
        }

    Object *operator [] (int loc) const
        {
        return oarray[loc];
        }

    int lowerBound() const
        {
        return oarray.lowerBound();
        }

    int upperBound() const
        {
        return oarray.upperBound();
        }

    sizeType arraySize() const
        {
        return oarray.arraySize();
        }

    void add( Object _FAR *o )
        {
        oarray.add(o);
        }

    void addAt( Object _FAR *o, int loc )
        {
        oarray.addAt(o,loc);
        }

    void detach( int loc,
                 TShouldDelete::DeleteType dt = TShouldDelete::NoDelete
               )
        {
        oarray.detach( loc, dt );
        }

    void detach( Object _FAR *o,
                 TShouldDelete::DeleteType dt = TShouldDelete::NoDelete
               )
        {
        oarray.detach( o, dt );
        }

    void destroy( int i )
        {
        oarray.destroy( i );
        }

    void flush( TShouldDelete::DeleteType dt = TShouldDelete::DefDelete )
        {
        oarray.flush( dt );
        }

    int hasMember( Object _FAR *o ) const
        {
        return oarray.hasMember(o);
        }

    Object _FAR *findMember( Object _FAR *o ) const
        {
        int loc = oarray.find(o);
        return loc != INT_MAX ? oarray[loc] : 0;
        }

    int isEmpty() const
        {
        return oarray.isEmpty();
        }

    int isFull() const
        {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
偷拍自拍另类欧美| 国产一区不卡视频| 在线视频一区二区三| 一区二区三区波多野结衣在线观看 | 日韩成人一区二区三区在线观看| 欧美日韩国产欧美日美国产精品| 日韩精品1区2区3区| 精品欧美一区二区三区精品久久 | 国产欧美一区二区三区在线老狼| 成人免费毛片a| 亚洲精品乱码久久久久久 | 国产在线国偷精品免费看| 国产日产欧美精品一区二区三区| 91视频免费看| 日本伊人精品一区二区三区观看方式| 精品国产髙清在线看国产毛片| 懂色中文一区二区在线播放| 中文字幕日韩精品一区| 欧美色图一区二区三区| 蜜臀av亚洲一区中文字幕| 日本一区二区三区dvd视频在线| 99久久精品99国产精品| 视频一区在线视频| 国产人妖乱国产精品人妖| 欧美午夜精品免费| 国产激情一区二区三区桃花岛亚洲| 自拍偷拍欧美精品| 欧美一区午夜视频在线观看| 成人午夜电影小说| 日韩1区2区日韩1区2区| 日韩毛片一二三区| 欧美sm极限捆绑bd| 欧美三级在线看| 国产风韵犹存在线视精品| 婷婷开心久久网| 国产精品国产三级国产aⅴ无密码| 欧美剧情电影在线观看完整版免费励志电影 | 精品一区二区国语对白| 国产v日产∨综合v精品视频| 亚洲愉拍自拍另类高清精品| 欧美电影免费观看完整版| 91国产丝袜在线播放| 国产精品一区在线| 喷白浆一区二区| 一区二区在线观看视频| 国产精品色在线观看| 欧美不卡在线视频| 欧美日韩国产欧美日美国产精品| 成人性色生活片免费看爆迷你毛片| 秋霞电影网一区二区| 一区二区三区日韩在线观看| 欧美国产一区二区在线观看| 日韩欧美国产系列| 在线不卡的av| 欧美日韩第一区日日骚| 在线精品视频一区二区三四| 国产91在线观看| 久久99热这里只有精品| 五月天亚洲婷婷| 午夜av区久久| 亚洲一区二区三区四区五区中文| 国产在线国偷精品产拍免费yy | 日韩中文字幕亚洲一区二区va在线| 亚洲精选视频免费看| 日本一区二区视频在线| 久久久久九九视频| 精品国免费一区二区三区| 欧美一区二区三区不卡| 51精品国自产在线| 欧美三级三级三级爽爽爽| 欧美图区在线视频| 精品视频一区 二区 三区| 色国产综合视频| 色狠狠桃花综合| 在线视频一区二区免费| 欧美系列在线观看| 欧美精品在线观看播放| 欧美疯狂做受xxxx富婆| 欧美一区二区啪啪| 欧美xxxxxxxx| 久久久久久99久久久精品网站| 国产日韩精品一区二区三区在线| 国产午夜精品一区二区| 九色|91porny| 国产精品一区二区男女羞羞无遮挡| 国产精一区二区三区| 粉嫩蜜臀av国产精品网站| www.视频一区| 欧美午夜精品久久久久久孕妇| 欧美日韩三级一区二区| 欧美一区二区三区播放老司机| 日韩欧美综合一区| 国产视频一区二区在线| 国产精品第13页| 亚洲高清一区二区三区| 美女视频网站黄色亚洲| 国产乱码精品一品二品| 成人av在线看| 精品视频在线免费| 亚洲精品在线观| 亚洲同性gay激情无套| 亚洲电影第三页| 国产美女一区二区三区| 91丨porny丨首页| 欧美一级黄色录像| 国产精品欧美经典| 亚洲精选一二三| 黄色精品一二区| 91亚洲午夜精品久久久久久| 在线电影院国产精品| 精品福利一二区| 亚洲精品第1页| 久久精品国产亚洲一区二区三区| 国产成人一区在线| 在线视频一区二区三区| 久久久噜噜噜久噜久久综合| 亚洲女与黑人做爰| 麻豆精品一区二区三区| 成人av网址在线| 欧美一区二区三区婷婷月色 | 伊人婷婷欧美激情| 国产乱人伦偷精品视频不卡| 91精彩视频在线| 国产欧美综合在线观看第十页| 亚洲一区二区三区三| 国产精品18久久久久久久久久久久| 欧美丝袜自拍制服另类| 国产日韩欧美综合一区| 天天射综合影视| youjizz国产精品| 欧美不卡一区二区| 亚洲成av人片在线| 91一区二区三区在线观看| 久久这里只有精品首页| 亚洲成人黄色小说| 91视频.com| 国产午夜精品一区二区三区视频| www.欧美亚洲| 久久在线免费观看| 日韩 欧美一区二区三区| 在线免费观看日本欧美| 中文在线一区二区| 精品一区二区三区视频| 制服丝袜中文字幕一区| 夜色激情一区二区| av一区二区三区| 欧美激情一区二区三区蜜桃视频| 精品在线播放午夜| 在线不卡的av| 午夜精品免费在线| 91福利小视频| 一区二区三区四区av| av午夜精品一区二区三区| 国产亚洲精品aa| 国产在线不卡一卡二卡三卡四卡| 欧美一区二区成人| 日日摸夜夜添夜夜添国产精品| 欧洲人成人精品| 亚洲欧美日本在线| 91久久精品一区二区三区| 中文字幕日韩一区二区| 91在线码无精品| 国产精品成人免费在线| 成人性生交大片免费| 国产精品麻豆久久久| 成人综合激情网| 国产精品网站在线观看| av在线一区二区| 亚洲日本一区二区| 在线观看成人免费视频| 偷拍日韩校园综合在线| 欧美一区二区黄| 久久电影国产免费久久电影| 日韩欧美视频在线| 国产一区二区福利| 国产精品久久毛片a| 91老师国产黑色丝袜在线| 夜夜爽夜夜爽精品视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲一区二区视频| 欧美日韩成人一区| 精品中文字幕一区二区小辣椒 | 99久久久国产精品| 亚洲精品乱码久久久久久日本蜜臀| 欧美在线综合视频| 日本中文字幕一区二区有限公司| 日韩女优视频免费观看| 国产suv精品一区二区883| 亚洲美女屁股眼交3| 欧美精品xxxxbbbb| 国产福利不卡视频| 一区二区三区美女| 精品国产一区a| 99在线精品视频| 日韩影院在线观看| 国产视频一区二区三区在线观看| 色视频欧美一区二区三区| 免费在线观看一区二区三区| 亚洲国产精品精华液2区45| 欧美体内she精高潮|