commit 2025-10-13 19:00 ZCLinkPoint => ZCNodePoint : ZCppMain/ZtCObjList.H

This commit is contained in:
2025-10-13 19:00:57 +09:00
parent 388b87377a
commit 7a3b57f135
4 changed files with 260 additions and 258 deletions

View File

@ -5696,7 +5696,7 @@ namespace ZNsMain
class ZtCBaseList /*#####################################################*/ class ZtCBaseList /*#####################################################*/
{ {
public: public:
class ZCLink; class ZCLinkPoint; class ZCLinkPointC; class ZCLink; class ZCNodePoint; class ZCNodePointC;
/*************************************************************************/ /*************************************************************************/
typedef ZtCObjOpt<ZCLink> ZCLinkOpt ; typedef ZtCObjOpt<ZCLink> ZCLinkOpt ;
typedef ZtCObjOpt<TType > ZCDataOpt ; typedef ZtCObjOpt<TType > ZCDataOpt ;
@ -5709,20 +5709,20 @@ namespace ZNsMain
typedef TTypSize TypeSize ; typedef TTypSize TypeSize ;
typedef TMoveObj TypeMoveObj ; typedef TMoveObj TypeMoveObj ;
typedef ZCLink TypeLink ; typedef ZCLink TypeLink ;
typedef ZCLink TypeNode ; // ZCLinkPoint::GetNode() 의 반환형. typedef ZCLink TypeNode ; // ZCNodePoint::GetNode() 의 반환형.
typedef ZCLinkPoint TypeLinkPoint ; typedef ZCNodePoint TypeNodePoint ;
typedef ZCLinkPoint TypeIter ; typedef ZCNodePoint TypeIter ;
typedef ZCLink* IterEasy ; // 가장 쉽게 쓸 수 있는 반복자. typedef ZCLink* IterEasy ; // 가장 쉽게 쓸 수 있는 반복자.
typedef ZCLinkPointC iteratorC ; typedef ZCNodePointC iteratorC ;
typedef ZCLinkPoint iterator ; // 다양한 기능을 가진 반복자. typedef ZCNodePoint iterator ; // 다양한 기능을 가진 반복자.
typedef ZCLinkPointC const_iterator; typedef ZCNodePointC const_iterator;
typedef const TypeThis TypeThisC ; typedef const TypeThis TypeThisC ;
typedef const TypeList TypeListC ; typedef const TypeList TypeListC ;
typedef const TypeData TypeDataC ; typedef const TypeData TypeDataC ;
typedef const TypeNode TypeNodeC ; // ZCLinkPoint::GetNode() const 의 반환형. typedef const TypeNode TypeNodeC ; // ZCNodePoint::GetNode() const 의 반환형.
typedef const ZCLink TypeLinkC ; typedef const ZCLink TypeLinkC ;
typedef const ZCLink ZCLinkC ; typedef const ZCLink ZCLinkC ;
@ -5730,7 +5730,7 @@ namespace ZNsMain
typedef const ZCLinkOpt ZCLinkOptC ; typedef const ZCLinkOpt ZCLinkOptC ;
typedef const ZCDataOpt ZCDataOptC ; typedef const ZCDataOpt ZCDataOptC ;
typedef ZCLinkPointC TypeIterC ; typedef ZCNodePointC TypeIterC ;
/*************************************************************************/ /*************************************************************************/
@ -5861,46 +5861,46 @@ namespace ZNsMain
class ZCLinkPoint class ZCNodePoint
{ {
private: private:
mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0 mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0
mutable TypeSize ml_CurrPos ; mutable TypeSize ml_CurrPos ;
/*****/ TypeList& mr_CurrList; /*****/ TypeList& mr_CurrList;
public: public:
ZCLinkPoint(TypeList& AR_TypeList) : ZCNodePoint(TypeList& AR_TypeList) :
mr_CurrList(AR_TypeList) mr_CurrList(AR_TypeList)
{ {
mp_CurrLink = AR_TypeList.HeadPtr(); mp_CurrLink = AR_TypeList.HeadPtr();
ml_CurrPos = 1 ; ml_CurrPos = 1 ;
} }
ZCLinkPoint(const ZCLinkPoint& rhs) : ZCNodePoint(const ZCNodePoint& rhs) :
mr_CurrList(rhs.mr_CurrList), mr_CurrList(rhs.mr_CurrList),
mp_CurrLink(rhs.mp_CurrLink), mp_CurrLink(rhs.mp_CurrLink),
ml_CurrPos (rhs.ml_CurrPos ) ml_CurrPos (rhs.ml_CurrPos )
{} {}
public : public :
static ZCLinkPoint MakeTailPoint(TypeList& AR_TypeList) static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)
{ {
ZCLinkPoint VO_ZCLinkPoint(AR_TypeList); ZCNodePoint VO_ZCLinkPoint(AR_TypeList);
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************************/ return VO_ZCLinkPoint; /****************************/
}/* }/*
static ZCLinkPoint MakeTailPoint(TypeList& AR_TypeList)*/ static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)*/
static ZCLinkPoint MakeTailPoint(const TypeIter& AR_TypeIter) static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)
{ {
ZCLinkPoint VO_ZCLinkPoint(AR_TypeIter); ZCNodePoint VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************************/ return VO_ZCLinkPoint; /****************************/
}/* }/*
static ZCLinkPoint MakeTailPoint(const TypeIter& AR_TypeIter)*/ static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)*/
public : public :
@ -5918,7 +5918,7 @@ namespace ZNsMain
bool IsEmpty() const{return mr_CurrList.size()<1;} bool IsEmpty() const{return mr_CurrList.size()<1;}
ZCLinkPoint& operator= (const ZCLinkPoint& rhs){ return *this; } ZCNodePoint& operator= (const ZCNodePoint& rhs){ return *this; }
TypeData & operator*() {return **mp_CurrLink;} TypeData & operator*() {return **mp_CurrLink;}
@ -5931,17 +5931,17 @@ namespace ZNsMain
operator TypeLinkC& () const{return *mp_CurrLink;} operator TypeLinkC& () const{return *mp_CurrLink;}
bool operator == (const ZCLinkPoint& rhs) const bool operator == (const ZCNodePoint& rhs) const
{ return ml_CurrPos == rhs.ml_CurrPos; } { return ml_CurrPos == rhs.ml_CurrPos; }
bool operator != (const ZCLinkPoint& rhs) const bool operator != (const ZCNodePoint& rhs) const
{ return ml_CurrPos != rhs.ml_CurrPos; } { return ml_CurrPos != rhs.ml_CurrPos; }
bool operator > (const ZCLinkPoint& rhs) const bool operator > (const ZCNodePoint& rhs) const
{ return ml_CurrPos > rhs.ml_CurrPos; } { return ml_CurrPos > rhs.ml_CurrPos; }
bool operator >= (const ZCLinkPoint& rhs) const bool operator >= (const ZCNodePoint& rhs) const
{ return ml_CurrPos >= rhs.ml_CurrPos; } { return ml_CurrPos >= rhs.ml_CurrPos; }
bool operator < (const ZCLinkPoint& rhs) const bool operator < (const ZCNodePoint& rhs) const
{ return ml_CurrPos < rhs.ml_CurrPos; } { return ml_CurrPos < rhs.ml_CurrPos; }
bool operator <= (const ZCLinkPoint& rhs) const bool operator <= (const ZCNodePoint& rhs) const
{ return ml_CurrPos <= rhs.ml_CurrPos; } { return ml_CurrPos <= rhs.ml_CurrPos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -5958,44 +5958,44 @@ namespace ZNsMain
{ return ml_CurrPos <= AL_Size; } { return ml_CurrPos <= AL_Size; }
const ZCLinkPoint& operator++() const const ZCNodePoint& operator++() const
{ {
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos; return *this ; ++ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPoint& operator++() const*/ const ZCNodePoint& operator++() const*/
const ZCLinkPoint& operator--() const const ZCNodePoint& operator--() const
{ {
mp_CurrLink = mp_CurrLink->mp_PrevLink; mp_CurrLink = mp_CurrLink->mp_PrevLink;
--ml_CurrPos; return *this ; --ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPoint& operator--() const*/ const ZCNodePoint& operator--() const*/
ZCLinkPoint operator++(int) const ZCNodePoint operator++(int) const
{ {
ZCLinkPoint VO_NowPoint(*this); ZCNodePoint VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos ; return VO_NowPoint ; ++ml_CurrPos ; return VO_NowPoint ;
}/* }/*
ZCLinkPoint operator++(int) const*/ ZCNodePoint operator++(int) const*/
ZCLinkPoint operator--(int) const ZCNodePoint operator--(int) const
{ {
ZCLinkPoint VO_NowPoint(*this); ZCNodePoint VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_PrevLink; mp_CurrLink = mp_CurrLink->mp_PrevLink;
--ml_CurrPos; return VO_NowPoint ; --ml_CurrPos; return VO_NowPoint ;
}/* }/*
ZCLinkPoint operator--(int) const*/ ZCNodePoint operator--(int) const*/
const ZCLinkPoint& operator+=(TypeSize AL_Distance) const const ZCNodePoint& operator+=(TypeSize AL_Distance) const
{ {
if(IsEmpty()){return *this;} if(IsEmpty()){return *this;}
@ -6004,77 +6004,77 @@ namespace ZNsMain
return *this; /*:::::::::::::::::::::::::::*/ return *this; /*:::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPoint& operator+=(TypeSize AL_Distance) const*/ const ZCNodePoint& operator+=(TypeSize AL_Distance) const*/
const ZCLinkPoint& operator-=(TypeSize AL_Distance) const const ZCNodePoint& operator-=(TypeSize AL_Distance) const
{ {
mp_CurrLink = &((*mp_CurrLink)-AL_Distance); mp_CurrLink = &((*mp_CurrLink)-AL_Distance);
ml_CurrPos -= AL_Distance ; ml_CurrPos -= AL_Distance ;
return *this; /*::::::::::::::::::::::::::*/ return *this; /*::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPoint& operator-=(TypeSize AL_Distance) const*/ const ZCNodePoint& operator-=(TypeSize AL_Distance) const*/
public: public:
};/* };/*
class ZCLinkPoint*/ class ZCNodePoint*/
class ZCLinkPointC class ZCNodePointC
{ {
protected: protected:
const TypeList& mr_CurrList; const TypeList& mr_CurrList;
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0 mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
mutable TypeSize ml_CurrPos ; mutable TypeSize ml_CurrPos ;
public : public :
ZCLinkPointC(const TypeList& AR_TypeList) : ZCNodePointC(const TypeList& AR_TypeList) :
mr_CurrList(AR_TypeList) mr_CurrList(AR_TypeList)
{ {
mp_CurrLink = AR_TypeList.HeadPtr(); mp_CurrLink = AR_TypeList.HeadPtr();
ml_CurrPos = 1 ; ml_CurrPos = 1 ;
} }
ZCLinkPointC(const ZCLinkPoint & rhs) : ZCNodePointC(const ZCNodePoint & rhs) :
mr_CurrList( rhs.GetMain()), mr_CurrList( rhs.GetMain()),
mp_CurrLink(&rhs.GetNode()), mp_CurrLink(&rhs.GetNode()),
ml_CurrPos ( rhs.GetPos ()) ml_CurrPos ( rhs.GetPos ())
{} {}
ZCLinkPointC(const ZCLinkPointC& rhs) : ZCNodePointC(const ZCNodePointC& rhs) :
mr_CurrList(rhs.mr_CurrList), mr_CurrList(rhs.mr_CurrList),
mp_CurrLink(rhs.mp_CurrLink), mp_CurrLink(rhs.mp_CurrLink),
ml_CurrPos (rhs.ml_CurrPos ) ml_CurrPos (rhs.ml_CurrPos )
{} {}
public : public :
static ZCLinkPointC MakeTailPoint(const TypeList& AR_TypeList) static ZCNodePointC MakeTailPoint(const TypeList& AR_TypeList)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeList); ZCNodePointC VO_ZCLinkPoint(AR_TypeList);
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const TypeList& AR_TypeList)*/ static ZCNodePointC MakeTailPoint(const TypeList& AR_TypeList)*/
static ZCLinkPointC MakeTailPoint(const ZCLinkPoint& AR_TypeIter) static ZCNodePointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeIter); ZCNodePointC VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const ZCLinkPoint& AR_TypeIter)*/ static ZCNodePointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
static ZCLinkPointC MakeTailPoint(const ZCLinkPointC& AR_TypeIter) static ZCNodePointC MakeTailPoint(const ZCNodePointC& AR_TypeIter)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeIter); ZCNodePointC VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const ZCLinkPointC& AR_TypeIter)*/ static ZCNodePointC MakeTailPoint(const ZCNodePointC& AR_TypeIter)*/
public : public :
@ -6089,7 +6089,7 @@ namespace ZNsMain
bool IsEmpty() const{return mr_CurrList.size()<1;} bool IsEmpty() const{return mr_CurrList.size()<1;}
ZCLinkPointC& operator= (const ZCLinkPointC& rhs){ return *this; } ZCNodePointC& operator= (const ZCNodePointC& rhs){ return *this; }
TypeDataC& operator*() const{return **mp_CurrLink;} TypeDataC& operator*() const{return **mp_CurrLink;}
@ -6097,17 +6097,17 @@ namespace ZNsMain
operator TypeLinkC& () const{return *mp_CurrLink;} operator TypeLinkC& () const{return *mp_CurrLink;}
bool operator == (const ZCLinkPointC& rhs) const bool operator == (const ZCNodePointC& rhs) const
{ return ml_CurrPos == rhs.ml_CurrPos; } { return ml_CurrPos == rhs.ml_CurrPos; }
bool operator != (const ZCLinkPointC& rhs) const bool operator != (const ZCNodePointC& rhs) const
{ return ml_CurrPos != rhs.ml_CurrPos; } { return ml_CurrPos != rhs.ml_CurrPos; }
bool operator > (const ZCLinkPointC& rhs) const bool operator > (const ZCNodePointC& rhs) const
{ return ml_CurrPos > rhs.ml_CurrPos; } { return ml_CurrPos > rhs.ml_CurrPos; }
bool operator >= (const ZCLinkPointC& rhs) const bool operator >= (const ZCNodePointC& rhs) const
{ return ml_CurrPos >= rhs.ml_CurrPos; } { return ml_CurrPos >= rhs.ml_CurrPos; }
bool operator < (const ZCLinkPointC& rhs) const bool operator < (const ZCNodePointC& rhs) const
{ return ml_CurrPos < rhs.ml_CurrPos; } { return ml_CurrPos < rhs.ml_CurrPos; }
bool operator <= (const ZCLinkPointC& rhs) const bool operator <= (const ZCNodePointC& rhs) const
{ return ml_CurrPos <= rhs.ml_CurrPos; } { return ml_CurrPos <= rhs.ml_CurrPos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -6124,44 +6124,44 @@ namespace ZNsMain
{ return ml_CurrPos <= AL_Size; } { return ml_CurrPos <= AL_Size; }
const ZCLinkPointC& operator++() const const ZCNodePointC& operator++() const
{ {
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos; return *this ; ++ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPointC& operator++() const*/ const ZCNodePointC& operator++() const*/
const ZCLinkPointC& operator--() const const ZCNodePointC& operator--() const
{ {
mp_CurrLink = mp_CurrLink->mp_PrevLink; mp_CurrLink = mp_CurrLink->mp_PrevLink;
--ml_CurrPos; return *this ; --ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPointC& operator--() const*/ const ZCNodePointC& operator--() const*/
ZCLinkPointC operator++(int) const ZCNodePointC operator++(int) const
{ {
ZCLinkPointC VO_NowPoint(*this); ZCNodePointC VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos ; return VO_NowPoint ; ++ml_CurrPos ; return VO_NowPoint ;
}/* }/*
ZCLinkPointC operator++(int) const*/ ZCNodePointC operator++(int) const*/
ZCLinkPointC operator--(int) const ZCNodePointC operator--(int) const
{ {
ZCLinkPointC VO_NowPoint(*this); ZCNodePointC VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_PrevLink; mp_CurrLink = mp_CurrLink->mp_PrevLink;
--ml_CurrPos; return VO_NowPoint ; --ml_CurrPos; return VO_NowPoint ;
}/* }/*
ZCLinkPointC operator--(int) const*/ ZCNodePointC operator--(int) const*/
const ZCLinkPointC& operator+=(TypeSize AL_Distance) const const ZCNodePointC& operator+=(TypeSize AL_Distance) const
{ {
if(IsEmpty()){return *this;} if(IsEmpty()){return *this;}
@ -6170,28 +6170,28 @@ namespace ZNsMain
return *this; /*:::::::::::::::::::::::::::*/ return *this; /*:::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPointC& operator+=(TypeSize AL_Distance) const*/ const ZCNodePointC& operator+=(TypeSize AL_Distance) const*/
const ZCLinkPointC& operator-=(TypeSize AL_Distance) const const ZCNodePointC& operator-=(TypeSize AL_Distance) const
{ {
mp_CurrLink = &((*mp_CurrLink)-AL_Distance); mp_CurrLink = &((*mp_CurrLink)-AL_Distance);
ml_CurrPos -= AL_Distance ; ml_CurrPos -= AL_Distance ;
return *this; /*::::::::::::::::::::::::::*/ return *this; /*::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPointC& operator-=(TypeSize AL_Distance) const*/ const ZCNodePointC& operator-=(TypeSize AL_Distance) const*/
public: public:
};/* };/*
class ZCLinkPointC*/ class ZCNodePointC*/
class ZCLinkPointEx : public ZCLinkPoint class ZCLinkPointEx : public ZCNodePoint
{ {
public: public:
ZCLinkPointEx(TypeList& AR_TypeList): ZCLinkPoint(AR_TypeList){} ZCLinkPointEx(TypeList& AR_TypeList): ZCNodePoint(AR_TypeList){}
ZCLinkPointEx(const ZCLinkPoint & rhs): ZCLinkPoint(rhs ){} ZCLinkPointEx(const ZCNodePoint & rhs): ZCNodePoint(rhs ){}
ZCLinkPointEx(const ZCLinkPointEx& rhs): ZCLinkPoint(rhs ){} ZCLinkPointEx(const ZCLinkPointEx& rhs): ZCNodePoint(rhs ){}
public: public:
static ZCLinkPointEx MakeTailPoint(const ZCLinkPointEx& AR_TypeIter) static ZCLinkPointEx MakeTailPoint(const ZCLinkPointEx& AR_TypeIter)
@ -8554,10 +8554,10 @@ namespace ZNsMain
{ return GetDataInIter((ZCLinkC*)ARR_Iterator , AI_FarNum); } { return GetDataInIter((ZCLinkC*)ARR_Iterator , AI_FarNum); }
iterator begin () { return ZCLinkPoint (*this); } iterator begin () { return ZCNodePoint (*this); }
iteratorC begin () const{ return ZCLinkPointC(*this); } iteratorC begin () const{ return ZCNodePointC(*this); }
iterator end () { return ZCLinkPoint ::MakeTailPoint(*this); } iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
iteratorC end () const{ return ZCLinkPointC::MakeTailPoint(*this); } iteratorC end () const{ return ZCNodePointC::MakeTailPoint(*this); }
IterEasy ItHEasy() {return GetHeadIterEasy ();} IterEasy ItHEasy() {return GetHeadIterEasy ();}

View File

@ -22,11 +22,11 @@ namespace ZNsMain
typedef TTypArg TypeArg ; typedef TTypArg TypeArg ;
typedef TSize TypeSize ; typedef TSize TypeSize ;
public: public:
class ZCDataPoint; class ZCDataPointC ; class ZCNodePoint; class ZCDataPointC ;
public: public:
typedef TypeData* IterEasy ; typedef TypeData* IterEasy ;
typedef TypeData* TypeNode ; // ZCLinkPoint::GetNode() 의 반환형. typedef TypeData* TypeNode ; // ZCLinkPoint::GetNode() 의 반환형.
typedef ZCDataPoint TypeIter ; typedef ZCNodePoint TypeIter ;
typedef ZtCArray TypeThis ; typedef ZtCArray TypeThis ;
typedef const TypeThis TypeThisC ; typedef const TypeThis TypeThisC ;
@ -36,12 +36,12 @@ namespace ZNsMain
typedef ZCDataPointC iteratorC ; typedef ZCDataPointC iteratorC ;
/**********************************************/ /**********************************************/
typedef ZCDataPoint iterator ; typedef ZCNodePoint iterator ;
typedef ZCDataPointC const_iterator; typedef ZCDataPointC const_iterator;
public: public:
class ZCDataPoint class ZCNodePoint
{ {
private: mutable private: mutable
TypeData* mp_Data ; mutable TypeData* mp_Data ; mutable
@ -49,7 +49,7 @@ namespace ZNsMain
ZtCArray& mr_CArray; ZtCArray& mr_CArray;
public: public:
ZCDataPoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) : ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
mr_CArray(AR_CArray) mr_CArray(AR_CArray)
/*****************************************************************/ /*****************************************************************/
{ {
@ -57,21 +57,21 @@ namespace ZNsMain
mr_CArray=&AR_CArray; mr_CArray=&AR_CArray;
ml_ElePos=AL_ElePos ; ml_ElePos=AL_ElePos ;
}/* }/*
ZCDataPoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/ ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
ZCDataPoint(ZtCArray& AR_CArray) : mr_CArray(AR_CArray) ZCNodePoint(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
{ {
mp_Data = AR_CArray.mp_TypeArr ; mp_Data = AR_CArray.mp_TypeArr ;
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ; ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
}/* }/*
ZCDataPoint(ZtCArray& AR_CArray)*/ ZCNodePoint(ZtCArray& AR_CArray)*/
ZCDataPoint(const ZCDataPoint& rhs) : mr_CArray(rhs.mr_CArray) ZCNodePoint(const ZCNodePoint& rhs) : mr_CArray(rhs.mr_CArray)
{ {
mp_Data = rhs.mp_TypeArr ; mp_Data = rhs.mp_TypeArr ;
ml_ElePos= (mr_CArray.size()>0 ? 1 : 0 ); ml_ElePos= (mr_CArray.size()>0 ? 1 : 0 );
}/* }/*
ZCDataPoint(const ZCDataPoint& rhs)*/ ZCNodePoint(const ZCNodePoint& rhs)*/
TypeThis & GetMain() {return mr_CArray ;} TypeThis & GetMain() {return mr_CArray ;}
@ -88,30 +88,30 @@ namespace ZNsMain
TypeDataC& operator* () const{return *mp_Data;} TypeDataC& operator* () const{return *mp_Data;}
TypeDataC* operator->() const{return mp_Data;} TypeDataC* operator->() const{return mp_Data;}
ZCDataPoint& operator++( ){++mp_Data; ++ml_ElePos; return *this;} ZCNodePoint& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
ZCDataPoint operator++(int){++mp_Data; ++ml_ElePos; return *this;} ZCNodePoint operator++(int){++mp_Data; ++ml_ElePos; return *this;}
const ZCDataPoint& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;} const ZCNodePoint& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
const ZCDataPoint operator++(int) const{++mp_Data; ++ml_ElePos; return *this;} const ZCNodePoint operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
ZCDataPoint operator+(TSize AL_AddPos) const ZCNodePoint operator+(TSize AL_AddPos) const
{ {
return ZCDataPoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos); return ZCNodePoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
}/* }/*
ZCDataPoint operator+(TSize AL_AddPos) const*/ ZCNodePoint operator+(TSize AL_AddPos) const*/
bool operator == (const ZCDataPoint& rhs) const bool operator == (const ZCNodePoint& rhs) const
{ return ml_ElePos == rhs.ml_ElePos; } { return ml_ElePos == rhs.ml_ElePos; }
bool operator != (const ZCDataPoint& rhs) const bool operator != (const ZCNodePoint& rhs) const
{ return ml_ElePos != rhs.ml_ElePos; } { return ml_ElePos != rhs.ml_ElePos; }
bool operator > (const ZCDataPoint& rhs) const bool operator > (const ZCNodePoint& rhs) const
{ return ml_ElePos > rhs.ml_ElePos; } { return ml_ElePos > rhs.ml_ElePos; }
bool operator >= (const ZCDataPoint& rhs) const bool operator >= (const ZCNodePoint& rhs) const
{ return ml_ElePos >= rhs.ml_ElePos; } { return ml_ElePos >= rhs.ml_ElePos; }
bool operator < (const ZCDataPoint& rhs) const bool operator < (const ZCNodePoint& rhs) const
{ return ml_ElePos < rhs.ml_ElePos; } { return ml_ElePos < rhs.ml_ElePos; }
bool operator <= (const ZCDataPoint& rhs) const bool operator <= (const ZCNodePoint& rhs) const
{ return ml_ElePos <= rhs.ml_ElePos; } { return ml_ElePos <= rhs.ml_ElePos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -129,7 +129,7 @@ namespace ZNsMain
public: public:
};/* };/*
class ZCDataPoint*/ class ZCNodePoint*/
class ZCDataPointC class ZCDataPointC
@ -163,12 +163,12 @@ namespace ZNsMain
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ; ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
}/* }/*
ZCDataPointC(const ZCDataPointC& rhs)*/ ZCDataPointC(const ZCDataPointC& rhs)*/
ZCDataPointC(const ZCDataPoint & rhs) : mr_CArray(rhs.mr_CArray) ZCDataPointC(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
{ {
mp_Data = rhs.mp_TypeArr ; mp_Data = rhs.mp_TypeArr ;
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ; ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
}/* }/*
ZCDataPointC(const ZCDataPoint & rhs)*/ ZCDataPointC(const ZCNodePoint & rhs)*/
TypeSize size () const{return mr_CArray.size();} TypeSize size () const{return mr_CArray.size();}
@ -469,8 +469,8 @@ namespace ZNsMain
Type& push_front(){return AddHead();} Type& push_front(){return AddHead();}
Type& push_back (){return AddTail();} Type& push_back (){return AddTail();}
/***/ ZCDataPoint begin() {return ZCDataPoint(*this);} /***/ ZCNodePoint begin() {return ZCNodePoint(*this);}
const ZCDataPoint begin() const{return ZCDataPoint(*this);} const ZCNodePoint begin() const{return ZCNodePoint(*this);}
template<typename TFunctor> void IterElement(TFunctor AO_Functor) template<typename TFunctor> void IterElement(TFunctor AO_Functor)

View File

@ -795,8 +795,8 @@ namespace ZNsMain
{ {
public: public:
class ZCLink ; class ZCLink ;
class ZCLinkPoint ; class ZCNodePoint ;
class ZCLinkPointC ; class ZCNodePointC ;
public: public:
template<typename TypeObjList> friend class ZtCSortObjList; template<typename TypeObjList> friend class ZtCSortObjList;
/*********************************************************************/ /*********************************************************************/
@ -813,29 +813,29 @@ namespace ZNsMain
typedef ZtCObjList TypeThis ; typedef ZtCObjList TypeThis ;
typedef ZCLink TypeLink ; typedef ZCLink TypeLink ;
typedef ZCLink TypeNode ; // ZCLinkPoint::GetNode() 의 반환형. typedef ZCLink TypeNode ; // ZCNodePoint::GetNode() 의 반환형.
typedef TypeThis TypeList ; typedef TypeThis TypeList ;
typedef ZCLink* IterEasy ; // 가장 간단하게 쓰일 수 있는 반복자. typedef ZCLink* IterEasy ; // 가장 간단하게 쓰일 수 있는 반복자.
typedef ZCLinkPoint TypeIter ; typedef ZCNodePoint TypeIter ;
typedef ZCLinkPointC TypeIterC ; typedef ZCNodePointC TypeIterC ;
/*********************************************************************/ /*********************************************************************/
typedef ZCLinkPoint iterator ; // 다양한 기능을 가진 반복자. typedef ZCNodePoint iterator ; // 다양한 기능을 가진 반복자.
typedef ZCLinkPointC const_iterator; typedef ZCNodePointC const_iterator;
/*********************************************************************/ /*********************************************************************/
typedef const TypeThis TypeThisC ; typedef const TypeThis TypeThisC ;
typedef const TypeList TypeListC ; typedef const TypeList TypeListC ;
typedef const TypeData TypeDataC ; typedef const TypeData TypeDataC ;
typedef const TypeLink TypeLinkC ; typedef const TypeLink TypeLinkC ;
typedef const TypeNode TypeNodeC ; // ZCLinkPoint::GetNode() const 의 반환형. typedef const TypeNode TypeNodeC ; // ZCNodePoint::GetNode() const 의 반환형.
typedef const IterEasy IterEasyC ; typedef const IterEasy IterEasyC ;
typedef const ZCLink ZCLinkC ; typedef const ZCLink ZCLinkC ;
typedef const ZCLinkOpt ZCLinkOptC ; typedef const ZCLinkOpt ZCLinkOptC ;
typedef const ZCDataOpt ZCDataOptC ; typedef const ZCDataOpt ZCDataOptC ;
typedef ZCLinkPointC iteratorC ; typedef ZCNodePointC iteratorC ;
/*********************************************************************/ /*********************************************************************/
typedef typename TFeeeHeap:: typedef typename TFeeeHeap::
@ -1048,46 +1048,46 @@ namespace ZNsMain
class ZCLink*/ class ZCLink*/
class ZCLinkPoint class ZCNodePoint
{ {
protected: protected:
mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0 mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0
mutable TypeSize ml_CurrPos ; mutable TypeSize ml_CurrPos ;
/*****/ TypeList& mr_CurrList; /*****/ TypeList& mr_CurrList;
public : public :
ZCLinkPoint(TypeList& AR_TypeList) : ZCNodePoint(TypeList& AR_TypeList) :
mr_CurrList(AR_TypeList) mr_CurrList(AR_TypeList)
{ {
mp_CurrLink = AR_TypeList.HeadPtr(); mp_CurrLink = AR_TypeList.HeadPtr();
ml_CurrPos = 1 ; ml_CurrPos = 1 ;
} }
ZCLinkPoint(const ZCLinkPoint& rhs) : ZCNodePoint(const ZCNodePoint& rhs) :
mr_CurrList(rhs.mr_CurrList), mr_CurrList(rhs.mr_CurrList),
mp_CurrLink(rhs.mp_CurrLink), mp_CurrLink(rhs.mp_CurrLink),
ml_CurrPos (rhs.ml_CurrPos ) ml_CurrPos (rhs.ml_CurrPos )
{} {}
public : public :
static ZCLinkPoint MakeTailPoint(TypeList& AR_TypeList) static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)
{ {
ZCLinkPoint VO_ZCLinkPoint(AR_TypeList); ZCNodePoint VO_ZCLinkPoint(AR_TypeList);
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************************/ return VO_ZCLinkPoint; /****************************/
}/* }/*
static ZCLinkPoint MakeTailPoint(TypeList& AR_TypeList)*/ static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)*/
static ZCLinkPoint MakeTailPoint(const TypeIter& AR_TypeIter) static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)
{ {
ZCLinkPoint VO_ZCLinkPoint(AR_TypeIter); ZCNodePoint VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************************/ return VO_ZCLinkPoint; /****************************/
}/* }/*
static ZCLinkPoint MakeTailPoint(const TypeIter& AR_TypeIter)*/ static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)*/
public : public :
@ -1105,7 +1105,7 @@ namespace ZNsMain
bool IsEmpty() const{return mr_CurrList.size()<1;} bool IsEmpty() const{return mr_CurrList.size()<1;}
ZCLinkPoint& operator= (const ZCLinkPoint& rhs){ return *this; } ZCNodePoint& operator= (const ZCNodePoint& rhs){ return *this; }
TypeData & operator*() {return **mp_CurrLink;} TypeData & operator*() {return **mp_CurrLink;}
@ -1118,17 +1118,17 @@ namespace ZNsMain
operator TypeLinkC& () const{return *mp_CurrLink;} operator TypeLinkC& () const{return *mp_CurrLink;}
bool operator == (const ZCLinkPoint& rhs) const bool operator == (const ZCNodePoint& rhs) const
{ return ml_CurrPos == rhs.ml_CurrPos; } { return ml_CurrPos == rhs.ml_CurrPos; }
bool operator != (const ZCLinkPoint& rhs) const bool operator != (const ZCNodePoint& rhs) const
{ return ml_CurrPos != rhs.ml_CurrPos; } { return ml_CurrPos != rhs.ml_CurrPos; }
bool operator > (const ZCLinkPoint& rhs) const bool operator > (const ZCNodePoint& rhs) const
{ return ml_CurrPos > rhs.ml_CurrPos; } { return ml_CurrPos > rhs.ml_CurrPos; }
bool operator >= (const ZCLinkPoint& rhs) const bool operator >= (const ZCNodePoint& rhs) const
{ return ml_CurrPos >= rhs.ml_CurrPos; } { return ml_CurrPos >= rhs.ml_CurrPos; }
bool operator < (const ZCLinkPoint& rhs) const bool operator < (const ZCNodePoint& rhs) const
{ return ml_CurrPos < rhs.ml_CurrPos; } { return ml_CurrPos < rhs.ml_CurrPos; }
bool operator <= (const ZCLinkPoint& rhs) const bool operator <= (const ZCNodePoint& rhs) const
{ return ml_CurrPos <= rhs.ml_CurrPos; } { return ml_CurrPos <= rhs.ml_CurrPos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -1145,44 +1145,44 @@ namespace ZNsMain
{ return ml_CurrPos <= AL_Size; } { return ml_CurrPos <= AL_Size; }
const ZCLinkPoint& operator++() const const ZCNodePoint& operator++() const
{ {
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos; return *this ; ++ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPoint& operator++() const*/ const ZCNodePoint& operator++() const*/
const ZCLinkPoint& operator--() const const ZCNodePoint& operator--() const
{ {
mp_CurrLink = mp_CurrLink->mp_PrevLink; mp_CurrLink = mp_CurrLink->mp_PrevLink;
--ml_CurrPos; return *this ; --ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPoint& operator--() const*/ const ZCNodePoint& operator--() const*/
ZCLinkPoint operator++(int) const ZCNodePoint operator++(int) const
{ {
ZCLinkPoint VO_NowPoint(*this); ZCNodePoint VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos ; return VO_NowPoint ; ++ml_CurrPos ; return VO_NowPoint ;
}/* }/*
ZCLinkPoint operator++(int) const*/ ZCNodePoint operator++(int) const*/
ZCLinkPoint operator--(int) const ZCNodePoint operator--(int) const
{ {
ZCLinkPoint VO_NowPoint(*this); ZCNodePoint VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_PrevLink; mp_CurrLink = mp_CurrLink->mp_PrevLink;
--ml_CurrPos; return VO_NowPoint ; --ml_CurrPos; return VO_NowPoint ;
}/* }/*
ZCLinkPoint operator--(int) const*/ ZCNodePoint operator--(int) const*/
const ZCLinkPoint& operator+=(TypeSize AL_Distance) const const ZCNodePoint& operator+=(TypeSize AL_Distance) const
{ {
if(IsEmpty()){return *this;} if(IsEmpty()){return *this;}
@ -1191,77 +1191,77 @@ namespace ZNsMain
return *this; /*:::::::::::::::::::::::::::*/ return *this; /*:::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPoint& operator+=(TypeSize AL_Distance) const*/ const ZCNodePoint& operator+=(TypeSize AL_Distance) const*/
const ZCLinkPoint& operator-=(TypeSize AL_Distance) const const ZCNodePoint& operator-=(TypeSize AL_Distance) const
{ {
mp_CurrLink = &((*mp_CurrLink)-AL_Distance); mp_CurrLink = &((*mp_CurrLink)-AL_Distance);
ml_CurrPos -= AL_Distance ; ml_CurrPos -= AL_Distance ;
return *this; /*::::::::::::::::::::::::::*/ return *this; /*::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPoint& operator-=(TypeSize AL_Distance) const*/ const ZCNodePoint& operator-=(TypeSize AL_Distance) const*/
public: public:
};/* };/*
class ZCLinkPoint*/ class ZCNodePoint*/
class ZCLinkPointC class ZCNodePointC
{ {
protected: protected:
const TypeList& mr_CurrList; const TypeList& mr_CurrList;
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0 mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
mutable TypeSize ml_CurrPos ; mutable TypeSize ml_CurrPos ;
public : public :
ZCLinkPointC(const TypeList& AR_TypeList) : ZCNodePointC(const TypeList& AR_TypeList) :
mr_CurrList(AR_TypeList) mr_CurrList(AR_TypeList)
{ {
mp_CurrLink = AR_TypeList.HeadPtr(); mp_CurrLink = AR_TypeList.HeadPtr();
ml_CurrPos = 1 ; ml_CurrPos = 1 ;
} }
ZCLinkPointC(const ZCLinkPoint & rhs) : ZCNodePointC(const ZCNodePoint & rhs) :
mr_CurrList( rhs.GetMain()), mr_CurrList( rhs.GetMain()),
mp_CurrLink(&rhs.GetNode()), mp_CurrLink(&rhs.GetNode()),
ml_CurrPos ( rhs.GetPos ()) ml_CurrPos ( rhs.GetPos ())
{} {}
ZCLinkPointC(const ZCLinkPointC& rhs) : ZCNodePointC(const ZCNodePointC& rhs) :
mr_CurrList(rhs.mr_CurrList), mr_CurrList(rhs.mr_CurrList),
mp_CurrLink(rhs.mp_CurrLink), mp_CurrLink(rhs.mp_CurrLink),
ml_CurrPos (rhs.ml_CurrPos ) ml_CurrPos (rhs.ml_CurrPos )
{} {}
public : public :
static ZCLinkPointC MakeTailPoint(const TypeList& AR_TypeList) static ZCNodePointC MakeTailPoint(const TypeList& AR_TypeList)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeList); ZCNodePointC VO_ZCLinkPoint(AR_TypeList);
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const TypeList& AR_TypeList)*/ static ZCNodePointC MakeTailPoint(const TypeList& AR_TypeList)*/
static ZCLinkPointC MakeTailPoint(const ZCLinkPoint& AR_TypeIter) static ZCNodePointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeIter); ZCNodePointC VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const ZCLinkPoint& AR_TypeIter)*/ static ZCNodePointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
static ZCLinkPointC MakeTailPoint(const ZCLinkPointC& AR_TypeIter) static ZCNodePointC MakeTailPoint(const ZCNodePointC& AR_TypeIter)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeIter); ZCNodePointC VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const ZCLinkPointC& AR_TypeIter)*/ static ZCNodePointC MakeTailPoint(const ZCNodePointC& AR_TypeIter)*/
public : public :
@ -1276,7 +1276,7 @@ namespace ZNsMain
bool IsEmpty() const{return mr_CurrList.size()<1;} bool IsEmpty() const{return mr_CurrList.size()<1;}
ZCLinkPointC& operator= (const ZCLinkPointC& rhs){ return *this; } ZCNodePointC& operator= (const ZCNodePointC& rhs){ return *this; }
TypeDataC& operator*() const{return **mp_CurrLink;} TypeDataC& operator*() const{return **mp_CurrLink;}
@ -1284,17 +1284,17 @@ namespace ZNsMain
operator TypeLinkC& () const{return *mp_CurrLink;} operator TypeLinkC& () const{return *mp_CurrLink;}
bool operator == (const ZCLinkPointC& rhs) const bool operator == (const ZCNodePointC& rhs) const
{ return ml_CurrPos == rhs.ml_CurrPos; } { return ml_CurrPos == rhs.ml_CurrPos; }
bool operator != (const ZCLinkPointC& rhs) const bool operator != (const ZCNodePointC& rhs) const
{ return ml_CurrPos != rhs.ml_CurrPos; } { return ml_CurrPos != rhs.ml_CurrPos; }
bool operator > (const ZCLinkPointC& rhs) const bool operator > (const ZCNodePointC& rhs) const
{ return ml_CurrPos > rhs.ml_CurrPos; } { return ml_CurrPos > rhs.ml_CurrPos; }
bool operator >= (const ZCLinkPointC& rhs) const bool operator >= (const ZCNodePointC& rhs) const
{ return ml_CurrPos >= rhs.ml_CurrPos; } { return ml_CurrPos >= rhs.ml_CurrPos; }
bool operator < (const ZCLinkPointC& rhs) const bool operator < (const ZCNodePointC& rhs) const
{ return ml_CurrPos < rhs.ml_CurrPos; } { return ml_CurrPos < rhs.ml_CurrPos; }
bool operator <= (const ZCLinkPointC& rhs) const bool operator <= (const ZCNodePointC& rhs) const
{ return ml_CurrPos <= rhs.ml_CurrPos; } { return ml_CurrPos <= rhs.ml_CurrPos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -1311,44 +1311,44 @@ namespace ZNsMain
{ return ml_CurrPos <= AL_Size; } { return ml_CurrPos <= AL_Size; }
const ZCLinkPointC& operator++() const const ZCNodePointC& operator++() const
{ {
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos; return *this ; ++ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPointC& operator++() const*/ const ZCNodePointC& operator++() const*/
const ZCLinkPointC& operator--() const const ZCNodePointC& operator--() const
{ {
mp_CurrLink = mp_CurrLink->mp_PrevLink; mp_CurrLink = mp_CurrLink->mp_PrevLink;
--ml_CurrPos; return *this ; --ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPointC& operator--() const*/ const ZCNodePointC& operator--() const*/
ZCLinkPointC operator++(int) const ZCNodePointC operator++(int) const
{ {
ZCLinkPointC VO_NowPoint(*this); ZCNodePointC VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos ; return VO_NowPoint ; ++ml_CurrPos ; return VO_NowPoint ;
}/* }/*
ZCLinkPointC operator++(int) const*/ ZCNodePointC operator++(int) const*/
ZCLinkPointC operator--(int) const ZCNodePointC operator--(int) const
{ {
ZCLinkPointC VO_NowPoint(*this); ZCNodePointC VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_PrevLink; mp_CurrLink = mp_CurrLink->mp_PrevLink;
--ml_CurrPos; return VO_NowPoint ; --ml_CurrPos; return VO_NowPoint ;
}/* }/*
ZCLinkPointC operator--(int) const*/ ZCNodePointC operator--(int) const*/
const ZCLinkPointC& operator+=(TypeSize AL_Distance) const const ZCNodePointC& operator+=(TypeSize AL_Distance) const
{ {
if(IsEmpty()){return *this;} if(IsEmpty()){return *this;}
@ -1357,28 +1357,28 @@ namespace ZNsMain
return *this; /*:::::::::::::::::::::::::::*/ return *this; /*:::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPointC& operator+=(TypeSize AL_Distance) const*/ const ZCNodePointC& operator+=(TypeSize AL_Distance) const*/
const ZCLinkPointC& operator-=(TypeSize AL_Distance) const const ZCNodePointC& operator-=(TypeSize AL_Distance) const
{ {
mp_CurrLink = &((*mp_CurrLink)-AL_Distance); mp_CurrLink = &((*mp_CurrLink)-AL_Distance);
ml_CurrPos -= AL_Distance ; ml_CurrPos -= AL_Distance ;
return *this; /*::::::::::::::::::::::::::*/ return *this; /*::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPointC& operator-=(TypeSize AL_Distance) const*/ const ZCNodePointC& operator-=(TypeSize AL_Distance) const*/
public: public:
};/* };/*
class ZCLinkPointC*/ class ZCNodePointC*/
class ZCLinkPointEx : public ZCLinkPoint class ZCLinkPointEx : public ZCNodePoint
{ {
public: public:
ZCLinkPointEx(TypeList& AR_TypeList): ZCLinkPoint(AR_TypeList){} ZCLinkPointEx(TypeList& AR_TypeList): ZCNodePoint(AR_TypeList){}
ZCLinkPointEx(const ZCLinkPoint & rhs): ZCLinkPoint(rhs ){} ZCLinkPointEx(const ZCNodePoint & rhs): ZCNodePoint(rhs ){}
ZCLinkPointEx(const ZCLinkPointEx& rhs): ZCLinkPoint(rhs ){} ZCLinkPointEx(const ZCLinkPointEx& rhs): ZCNodePoint(rhs ){}
public: public:
static ZCLinkPointEx MakeTailPoint(const ZCLinkPointEx& AR_TypeIter) static ZCLinkPointEx MakeTailPoint(const ZCLinkPointEx& AR_TypeIter)
@ -3161,10 +3161,10 @@ namespace ZNsMain
{ return GetDataInIter((ZCLinkC*)ARR_Iterator , AI_FarNum); } { return GetDataInIter((ZCLinkC*)ARR_Iterator , AI_FarNum); }
iterator begin () { return ZCLinkPoint (*this); } iterator begin () { return ZCNodePoint (*this); }
iteratorC begin () const{ return ZCLinkPointC(*this); } iteratorC begin () const{ return ZCNodePointC(*this); }
iterator end () { return ZCLinkPoint ::MakeTailPoint(*this); } iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
iteratorC end () const{ return ZCLinkPointC::MakeTailPoint(*this); } iteratorC end () const{ return ZCNodePointC::MakeTailPoint(*this); }
IterEasy ItHEasy() {return GetHeadIterEasy (); } IterEasy ItHEasy() {return GetHeadIterEasy (); }

View File

@ -768,8 +768,8 @@ namespace ZNsMain
{ {
public: public:
class ZCLink ; class ZCLink ;
class ZCLinkPoint ; class ZCNodePoint ;
class ZCLinkPointC; class ZNodekPointC;
/**************************************************/ /**************************************************/
typedef TType Type ; typedef TType Type ;
typedef TType TypeData ; typedef TType TypeData ;
@ -780,9 +780,10 @@ namespace ZNsMain
typedef TMoveObj TypeMoveObj ; typedef TMoveObj TypeMoveObj ;
typedef ZCLink TypeLink ; typedef ZCLink TypeLink ;
typedef ZCLink TypeNode ;
typedef ZtCSimList TypeList ; typedef ZtCSimList TypeList ;
typedef ZtCSimList TypeThis ; typedef ZtCSimList TypeThis ;
typedef ZCLinkPoint TypeIter ; typedef ZCNodePoint TypeIter ;
/**************************************************/ /**************************************************/
typedef const ZCLink ZCLinkC ; typedef const ZCLink ZCLinkC ;
@ -790,10 +791,11 @@ namespace ZNsMain
typedef const TypeData TypeDataC ; typedef const TypeData TypeDataC ;
typedef const TypeList TypeListC ; typedef const TypeList TypeListC ;
typedef const TypeLink TypeLinkC ; typedef const TypeLink TypeLinkC ;
typedef const TypeNode TypeNodeC ;
/**************************************************/ /**************************************************/
typedef ZCLinkPoint iterator ; typedef ZCNodePoint iterator ;
typedef ZCLinkPointC const_iterator ; typedef ZNodekPointC const_iterator ;
typedef ZCLinkPointC iteratorC ; typedef ZNodekPointC iteratorC ;
/**************************************************/ /**************************************************/
typedef typename TFeeeHeap:: typedef typename TFeeeHeap::
template ZtCBody<ZtCSimList> ZCFreeHeap; template ZtCBody<ZtCSimList> ZCFreeHeap;
@ -973,54 +975,54 @@ namespace ZNsMain
class ZCLink*/ class ZCLink*/
class ZCLinkPoint class ZCNodePoint
{ {
private: private:
mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0 mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0
mutable TypeSize ml_CurrPos ; mutable TypeSize ml_CurrPos ;
/*****/ TypeList& mr_CurrList; /*****/ TypeList& mr_CurrList;
public: public:
ZCLinkPoint(TypeList& AR_TypeList) : ZCNodePoint(TypeList& AR_TypeList) :
mr_CurrList(AR_TypeList) mr_CurrList(AR_TypeList)
{ {
mp_CurrLink = AR_TypeList.HeadPtr(); mp_CurrLink = AR_TypeList.HeadPtr();
ml_CurrPos = 1 ; ml_CurrPos = 1 ;
} }
ZCLinkPoint(const ZCLinkPoint& rhs) : ZCNodePoint(const ZCNodePoint& rhs) :
mr_CurrList(rhs.mr_CurrList), mr_CurrList(rhs.mr_CurrList),
mp_CurrLink(rhs.mp_CurrLink), mp_CurrLink(rhs.mp_CurrLink),
ml_CurrPos (rhs.ml_CurrPos ) ml_CurrPos (rhs.ml_CurrPos )
{} {}
public : public :
static ZCLinkPoint MakeTailPoint(TypeList& AR_TypeList) static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)
{ {
ZCLinkPoint VO_ZCLinkPoint(AR_TypeList); ZCNodePoint VO_ZCLinkPoint(AR_TypeList);
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************************/ return VO_ZCLinkPoint; /****************************/
}/* }/*
static ZCLinkPoint MakeTailPoint(TypeList& AR_TypeList)*/ static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)*/
static ZCLinkPoint MakeTailPoint(const TypeIter& AR_TypeIter) static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)
{ {
ZCLinkPoint VO_ZCLinkPoint(AR_TypeIter); ZCNodePoint VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************************/ return VO_ZCLinkPoint; /****************************/
}/* }/*
static ZCLinkPoint MakeTailPoint(const TypeIter& AR_TypeIter)*/ static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)*/
public : public :
TypeThis & GetMain() {return mr_CurrList;} TypeThis & GetMain() {return mr_CurrList;}
TypeLink & GetNode() {return *mp_CurrLink;} TypeNode & GetNode() {return *mp_CurrLink;}
TypeThisC& GetMain() const{return mr_CurrList;} TypeThisC& GetMain() const{return mr_CurrList;}
TypeLinkC& GetNode() const{return *mp_CurrLink;} TypeNodeC& GetNode() const{return *mp_CurrLink;}
/***************************************************/ /***************************************************/
TypeSize GetPos () const{return ml_CurrPos ;} TypeSize GetPos () const{return ml_CurrPos ;}
/***************************************************/ /***************************************************/
@ -1030,7 +1032,7 @@ namespace ZNsMain
bool IsEmpty() const{return mr_CurrList.size()<1;} bool IsEmpty() const{return mr_CurrList.size()<1;}
ZCLinkPoint& operator= (const ZCLinkPoint& rhs){ return *this; } ZCNodePoint& operator= (const ZCNodePoint& rhs){ return *this; }
TypeData & operator*() {return **mp_CurrLink;} TypeData & operator*() {return **mp_CurrLink;}
@ -1043,17 +1045,17 @@ namespace ZNsMain
operator TypeLinkC& () const{return *mp_CurrLink;} operator TypeLinkC& () const{return *mp_CurrLink;}
bool operator == (const ZCLinkPoint& rhs) const bool operator == (const ZCNodePoint& rhs) const
{ return ml_CurrPos == rhs.ml_CurrPos; } { return ml_CurrPos == rhs.ml_CurrPos; }
bool operator != (const ZCLinkPoint& rhs) const bool operator != (const ZCNodePoint& rhs) const
{ return ml_CurrPos != rhs.ml_CurrPos; } { return ml_CurrPos != rhs.ml_CurrPos; }
bool operator > (const ZCLinkPoint& rhs) const bool operator > (const ZCNodePoint& rhs) const
{ return ml_CurrPos > rhs.ml_CurrPos; } { return ml_CurrPos > rhs.ml_CurrPos; }
bool operator >= (const ZCLinkPoint& rhs) const bool operator >= (const ZCNodePoint& rhs) const
{ return ml_CurrPos >= rhs.ml_CurrPos; } { return ml_CurrPos >= rhs.ml_CurrPos; }
bool operator < (const ZCLinkPoint& rhs) const bool operator < (const ZCNodePoint& rhs) const
{ return ml_CurrPos < rhs.ml_CurrPos; } { return ml_CurrPos < rhs.ml_CurrPos; }
bool operator <= (const ZCLinkPoint& rhs) const bool operator <= (const ZCNodePoint& rhs) const
{ return ml_CurrPos <= rhs.ml_CurrPos; } { return ml_CurrPos <= rhs.ml_CurrPos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -1070,26 +1072,26 @@ namespace ZNsMain
{ return ml_CurrPos <= AL_Size; } { return ml_CurrPos <= AL_Size; }
const ZCLinkPoint& operator++() const const ZCNodePoint& operator++() const
{ {
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos; return *this ; ++ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPoint& operator++() const*/ const ZCNodePoint& operator++() const*/
ZCLinkPoint operator++(int) const ZCNodePoint operator++(int) const
{ {
ZCLinkPoint VO_NowPoint(*this); ZCNodePoint VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos ; return VO_NowPoint ; ++ml_CurrPos ; return VO_NowPoint ;
}/* }/*
ZCLinkPoint operator++(int) const*/ ZCNodePoint operator++(int) const*/
const ZCLinkPoint& operator+=(TypeSize AL_Distance) const const ZCNodePoint& operator+=(TypeSize AL_Distance) const
{ {
if(IsEmpty()){return *this;} if(IsEmpty()){return *this;}
@ -1098,68 +1100,68 @@ namespace ZNsMain
return *this; /*:::::::::::::::::::::::::::*/ return *this; /*:::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPoint& operator+=(TypeSize AL_Distance) const*/ const ZCNodePoint& operator+=(TypeSize AL_Distance) const*/
public: public:
};/* };/*
class ZCLinkPoint*/ class ZCNodePoint*/
class ZCLinkPointC class ZNodekPointC
{ {
protected: protected:
const TypeList& mr_CurrList; const TypeList& mr_CurrList;
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0 mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
mutable TypeSize ml_CurrPos ; mutable TypeSize ml_CurrPos ;
public : public :
ZCLinkPointC(const TypeList& AR_TypeList) : ZNodekPointC(const TypeList& AR_TypeList) :
mr_CurrList(AR_TypeList) mr_CurrList(AR_TypeList)
{ {
mp_CurrLink = AR_TypeList.HeadPtr(); mp_CurrLink = AR_TypeList.HeadPtr();
ml_CurrPos = 1 ; ml_CurrPos = 1 ;
} }
ZCLinkPointC(const ZCLinkPoint & rhs) : ZNodekPointC(const ZCNodePoint & rhs) :
mr_CurrList( rhs.GetMain()), mr_CurrList( rhs.GetMain()),
mp_CurrLink(&rhs.GetNode()), mp_CurrLink(&rhs.GetNode()),
ml_CurrPos ( rhs.GetPos ()) ml_CurrPos ( rhs.GetPos ())
{} {}
ZCLinkPointC(const ZCLinkPointC& rhs) : ZNodekPointC(const ZNodekPointC& rhs) :
mr_CurrList(rhs.mr_CurrList), mr_CurrList(rhs.mr_CurrList),
mp_CurrLink(rhs.mp_CurrLink), mp_CurrLink(rhs.mp_CurrLink),
ml_CurrPos (rhs.ml_CurrPos ) ml_CurrPos (rhs.ml_CurrPos )
{} {}
public : public :
static ZCLinkPointC MakeTailPoint(const TypeList& AR_TypeList) static ZNodekPointC MakeTailPoint(const TypeList& AR_TypeList)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeList); ZNodekPointC VO_ZCLinkPoint(AR_TypeList);
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const TypeList& AR_TypeList)*/ static ZNodekPointC MakeTailPoint(const TypeList& AR_TypeList)*/
static ZCLinkPointC MakeTailPoint(const ZCLinkPoint& AR_TypeIter) static ZNodekPointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeIter); ZNodekPointC VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const ZCLinkPoint& AR_TypeIter)*/ static ZNodekPointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
static ZCLinkPointC MakeTailPoint(const ZCLinkPointC& AR_TypeIter) static ZNodekPointC MakeTailPoint(const ZNodekPointC& AR_TypeIter)
{ {
ZCLinkPointC VO_ZCLinkPoint(AR_TypeIter); ZNodekPointC VO_ZCLinkPoint(AR_TypeIter);
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink; VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize; VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
return VO_ZCLinkPoint; /****************/ return VO_ZCLinkPoint; /****************/
}/* }/*
static ZCLinkPointC MakeTailPoint(const ZCLinkPointC& AR_TypeIter)*/ static ZNodekPointC MakeTailPoint(const ZNodekPointC& AR_TypeIter)*/
public : public :
@ -1174,7 +1176,7 @@ namespace ZNsMain
bool IsEmpty() const{return mr_CurrList.size()<1;} bool IsEmpty() const{return mr_CurrList.size()<1;}
ZCLinkPointC& operator= (const ZCLinkPointC& rhs){ return *this; } ZNodekPointC& operator= (const ZNodekPointC& rhs){ return *this; }
TypeDataC& operator*() const{return **mp_CurrLink;} TypeDataC& operator*() const{return **mp_CurrLink;}
@ -1182,17 +1184,17 @@ namespace ZNsMain
operator TypeLinkC& () const{return *mp_CurrLink;} operator TypeLinkC& () const{return *mp_CurrLink;}
bool operator == (const ZCLinkPointC& rhs) const bool operator == (const ZNodekPointC& rhs) const
{ return ml_CurrPos == rhs.ml_CurrPos; } { return ml_CurrPos == rhs.ml_CurrPos; }
bool operator != (const ZCLinkPointC& rhs) const bool operator != (const ZNodekPointC& rhs) const
{ return ml_CurrPos != rhs.ml_CurrPos; } { return ml_CurrPos != rhs.ml_CurrPos; }
bool operator > (const ZCLinkPointC& rhs) const bool operator > (const ZNodekPointC& rhs) const
{ return ml_CurrPos > rhs.ml_CurrPos; } { return ml_CurrPos > rhs.ml_CurrPos; }
bool operator >= (const ZCLinkPointC& rhs) const bool operator >= (const ZNodekPointC& rhs) const
{ return ml_CurrPos >= rhs.ml_CurrPos; } { return ml_CurrPos >= rhs.ml_CurrPos; }
bool operator < (const ZCLinkPointC& rhs) const bool operator < (const ZNodekPointC& rhs) const
{ return ml_CurrPos < rhs.ml_CurrPos; } { return ml_CurrPos < rhs.ml_CurrPos; }
bool operator <= (const ZCLinkPointC& rhs) const bool operator <= (const ZNodekPointC& rhs) const
{ return ml_CurrPos <= rhs.ml_CurrPos; } { return ml_CurrPos <= rhs.ml_CurrPos; }
bool operator == (TypeSize AL_Size) const bool operator == (TypeSize AL_Size) const
@ -1209,26 +1211,26 @@ namespace ZNsMain
{ return ml_CurrPos <= AL_Size; } { return ml_CurrPos <= AL_Size; }
const ZCLinkPointC& operator++() const const ZNodekPointC& operator++() const
{ {
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos; return *this ; ++ml_CurrPos; return *this ;
}/* }/*
const ZCLinkPointC& operator++() const*/ const ZNodekPointC& operator++() const*/
ZCLinkPointC operator++(int) const ZNodekPointC operator++(int) const
{ {
ZCLinkPointC VO_NowPoint(*this); ZNodekPointC VO_NowPoint(*this);
mp_CurrLink = mp_CurrLink->mp_NextLink; mp_CurrLink = mp_CurrLink->mp_NextLink;
++ml_CurrPos ; return VO_NowPoint ; ++ml_CurrPos ; return VO_NowPoint ;
}/* }/*
ZCLinkPointC operator++(int) const*/ ZNodekPointC operator++(int) const*/
const ZCLinkPointC& operator+=(TypeSize AL_Distance) const const ZNodekPointC& operator+=(TypeSize AL_Distance) const
{ {
if(IsEmpty()){return *this;} if(IsEmpty()){return *this;}
@ -1237,11 +1239,11 @@ namespace ZNsMain
return *this; /*:::::::::::::::::::::::::::*/ return *this; /*:::::::::::::::::::::::::::*/
}/* }/*
const ZCLinkPointC& operator+=(TypeSize AL_Distance) const*/ const ZNodekPointC& operator+=(TypeSize AL_Distance) const*/
public: public:
};/* };/*
class ZCLinkPointC*/ class ZNodekPointC*/
public : public :
@ -2410,10 +2412,10 @@ namespace ZNsMain
{ return *ARR_Iterator; } { return *ARR_Iterator; }
iterator begin () { return ZCLinkPoint (*this); } iterator begin () { return ZCNodePoint (*this); }
iteratorC begin () const{ return ZCLinkPointC(*this); } iteratorC begin () const{ return ZNodekPointC(*this); }
iterator end () { return ZCLinkPoint ::MakeTailPoint(*this); } iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
iteratorC end () const{ return ZCLinkPointC::MakeTailPoint(*this); } iteratorC end () const{ return ZNodekPointC::MakeTailPoint(*this); }
ZCLink * HeadPtr() {return mp_HeadLink;} ZCLink * HeadPtr() {return mp_HeadLink;}