commit 2025-10-14 09:11 ZCNodePointC => ZCNodePointN : ZCppMain/ZMainHead.H etc
This commit is contained in:
@ -479,7 +479,7 @@ using namespace std;
|
||||
#define __for_ic(IterClass, IterObj, IterVar) \
|
||||
for ( \
|
||||
typename IterClass::const_iterator \
|
||||
IterVar=IterObj.begin(); \
|
||||
IterVar=IterObj.cbegin(); \
|
||||
IterVar<=IterObj.size(); ++IterVar \
|
||||
)
|
||||
|
||||
@ -492,7 +492,7 @@ using namespace std;
|
||||
#define __for_i_rc(IterClass, IterObj, IterVar) \
|
||||
for ( \
|
||||
typename IterClass::const_iterator \
|
||||
IterVar=IterObj.end(); \
|
||||
IterVar=IterObj.cend(); \
|
||||
IterVar>0; --IterVar \
|
||||
)
|
||||
|
||||
@ -5696,7 +5696,7 @@ namespace ZNsMain
|
||||
class ZtCBaseList /*#####################################################*/
|
||||
{
|
||||
public:
|
||||
class ZCLink; class ZCNodePoint; class ZCNodePointC;
|
||||
class ZCLink; class ZCNodePoint; class ZCNodePointN;
|
||||
/*************************************************************************/
|
||||
typedef ZtCObjOpt<ZCLink> ZCLinkOpt ;
|
||||
typedef ZtCObjOpt<TType > ZCDataOpt ;
|
||||
@ -5714,23 +5714,24 @@ namespace ZNsMain
|
||||
typedef ZCNodePoint TypeIter ;
|
||||
|
||||
typedef ZCLink* IterEasy ; // 가장 쉽게 쓸 수 있는 반복자.
|
||||
typedef ZCNodePointC iteratorC ;
|
||||
typedef ZCNodePointN iteratorN ;
|
||||
|
||||
typedef ZCNodePoint iterator ; // 다양한 기능을 가진 반복자.
|
||||
typedef ZCNodePointC const_iterator;
|
||||
typedef ZCNodePointN const_iterator;
|
||||
|
||||
typedef const TypeThis TypeThisC ;
|
||||
typedef const TypeList TypeListC ;
|
||||
typedef const TypeData TypeDataC ;
|
||||
typedef const TypeNode TypeNodeC ; // ZCNodePoint::GetNode() const 의 반환형.
|
||||
typedef const TypeLink TypeLinkC ;
|
||||
typedef const TypeIter TypeIterC ;
|
||||
|
||||
typedef const ZCLink ZCLinkC ;
|
||||
typedef const IterEasy IterEasyC ;
|
||||
typedef const ZCLinkOpt ZCLinkOptC ;
|
||||
typedef const ZCDataOpt ZCDataOptC ;
|
||||
|
||||
typedef ZCNodePointC TypeIterC ;
|
||||
typedef ZCNodePointN TypeIterN ;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
@ -6016,61 +6017,71 @@ namespace ZNsMain
|
||||
class ZCNodePoint*/
|
||||
|
||||
|
||||
class ZCNodePointC
|
||||
/*///////////////////////////////////////////////////////////////
|
||||
|
||||
■ 상수 전용 클래스에는 const 의 N 을 붙이는 것으로 하자.
|
||||
C 는 보통의 클래스가 특정 상황에서 읽기 전용일 경우에
|
||||
|
||||
typdef const some_class some_classC;
|
||||
|
||||
형태로 사용할 때 붙였다. -- 2025-10-14 09:08
|
||||
|
||||
///////////////////////////////////////////////////////////////*/
|
||||
class ZCNodePointN
|
||||
{
|
||||
protected:
|
||||
const TypeList& mr_CurrList;
|
||||
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
|
||||
mutable TypeSize ml_CurrPos ;
|
||||
public :
|
||||
ZCNodePointC(const TypeList& AR_TypeList) :
|
||||
ZCNodePointN(const TypeList& AR_TypeList) :
|
||||
mr_CurrList(AR_TypeList)
|
||||
{
|
||||
mp_CurrLink = AR_TypeList.HeadPtr();
|
||||
ml_CurrPos = 1 ;
|
||||
}
|
||||
ZCNodePointC(const ZCNodePoint & rhs) :
|
||||
ZCNodePointN(const ZCNodePoint & rhs) :
|
||||
mr_CurrList( rhs.GetMain()),
|
||||
mp_CurrLink(&rhs.GetNode()),
|
||||
ml_CurrPos ( rhs.GetPos ())
|
||||
{}
|
||||
ZCNodePointC(const ZCNodePointC& rhs) :
|
||||
ZCNodePointN(const ZCNodePointN& rhs) :
|
||||
mr_CurrList(rhs.mr_CurrList),
|
||||
mp_CurrLink(rhs.mp_CurrLink),
|
||||
ml_CurrPos (rhs.ml_CurrPos )
|
||||
{}
|
||||
public :
|
||||
|
||||
static ZCNodePointC MakeTailPoint(const TypeList& AR_TypeList)
|
||||
static ZCNodePointN MakeTailPoint(const TypeList& AR_TypeList)
|
||||
{
|
||||
ZCNodePointC VO_ZCLinkPoint(AR_TypeList);
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_TypeList);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZCNodePointC MakeTailPoint(const TypeList& AR_TypeList)*/
|
||||
static ZCNodePointC MakeTailPoint(const ZCNodePoint & AR_TypeIter)
|
||||
static ZCNodePointN MakeTailPoint(const TypeList& AR_TypeList)*/
|
||||
static ZCNodePointN MakeTailPoint(const ZCNodePoint & AR_TypeIter)
|
||||
{
|
||||
ZCNodePointC VO_ZCLinkPoint(AR_TypeIter);
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZCNodePointC MakeTailPoint(const ZCNodePoint & AR_TypeIter)*/
|
||||
static ZCNodePointC MakeTailPoint(const ZCNodePointC& AR_TypeIter)
|
||||
static ZCNodePointN MakeTailPoint(const ZCNodePoint & AR_TypeIter)*/
|
||||
static ZCNodePointN MakeTailPoint(const ZCNodePointN& AR_TypeIter)
|
||||
{
|
||||
ZCNodePointC VO_ZCLinkPoint(AR_TypeIter);
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZCNodePointC MakeTailPoint(const ZCNodePointC& AR_TypeIter)*/
|
||||
static ZCNodePointN MakeTailPoint(const ZCNodePointN& AR_TypeIter)*/
|
||||
|
||||
public :
|
||||
|
||||
@ -6085,7 +6096,7 @@ namespace ZNsMain
|
||||
bool IsEmpty() const{return mr_CurrList.size()<1;}
|
||||
|
||||
|
||||
ZCNodePointC& operator= (const ZCNodePointC& rhs){ return *this; }
|
||||
ZCNodePointN& operator= (const ZCNodePointN& rhs){ return *this; }
|
||||
|
||||
|
||||
TypeDataC& operator*() const{return **mp_CurrLink;}
|
||||
@ -6093,17 +6104,17 @@ namespace ZNsMain
|
||||
operator TypeNodeC& () const{return *mp_CurrLink;}
|
||||
|
||||
|
||||
bool operator == (const ZCNodePointC& rhs) const
|
||||
bool operator == (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos == rhs.ml_CurrPos; }
|
||||
bool operator != (const ZCNodePointC& rhs) const
|
||||
bool operator != (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos != rhs.ml_CurrPos; }
|
||||
bool operator > (const ZCNodePointC& rhs) const
|
||||
bool operator > (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos > rhs.ml_CurrPos; }
|
||||
bool operator >= (const ZCNodePointC& rhs) const
|
||||
bool operator >= (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos >= rhs.ml_CurrPos; }
|
||||
bool operator < (const ZCNodePointC& rhs) const
|
||||
bool operator < (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos < rhs.ml_CurrPos; }
|
||||
bool operator <= (const ZCNodePointC& rhs) const
|
||||
bool operator <= (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos <= rhs.ml_CurrPos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
@ -6120,44 +6131,44 @@ namespace ZNsMain
|
||||
{ return ml_CurrPos <= AL_Size; }
|
||||
|
||||
|
||||
const ZCNodePointC& operator++() const
|
||||
const ZCNodePointN& operator++() const
|
||||
{
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos; return *this ;
|
||||
}/*
|
||||
const ZCNodePointC& operator++() const*/
|
||||
const ZCNodePointN& operator++() const*/
|
||||
|
||||
const ZCNodePointC& operator--() const
|
||||
const ZCNodePointN& operator--() const
|
||||
{
|
||||
mp_CurrLink = mp_CurrLink->mp_PrevLink;
|
||||
|
||||
--ml_CurrPos; return *this ;
|
||||
}/*
|
||||
const ZCNodePointC& operator--() const*/
|
||||
const ZCNodePointN& operator--() const*/
|
||||
|
||||
ZCNodePointC operator++(int) const
|
||||
ZCNodePointN operator++(int) const
|
||||
{
|
||||
ZCNodePointC VO_NowPoint(*this);
|
||||
ZCNodePointN VO_NowPoint(*this);
|
||||
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos ; return VO_NowPoint ;
|
||||
}/*
|
||||
ZCNodePointC operator++(int) const*/
|
||||
ZCNodePointN operator++(int) const*/
|
||||
|
||||
ZCNodePointC operator--(int) const
|
||||
ZCNodePointN operator--(int) const
|
||||
{
|
||||
ZCNodePointC VO_NowPoint(*this);
|
||||
ZCNodePointN VO_NowPoint(*this);
|
||||
|
||||
mp_CurrLink = mp_CurrLink->mp_PrevLink;
|
||||
|
||||
--ml_CurrPos; return VO_NowPoint ;
|
||||
}/*
|
||||
ZCNodePointC operator--(int) const*/
|
||||
ZCNodePointN operator--(int) const*/
|
||||
|
||||
|
||||
const ZCNodePointC& operator+=(TypeSize AL_Distance) const
|
||||
const ZCNodePointN& operator+=(TypeSize AL_Distance) const
|
||||
{
|
||||
if(IsEmpty()){return *this;}
|
||||
|
||||
@ -6166,20 +6177,20 @@ namespace ZNsMain
|
||||
|
||||
return *this; /*:::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
const ZCNodePointC& operator+=(TypeSize AL_Distance) const*/
|
||||
const ZCNodePointN& operator+=(TypeSize AL_Distance) const*/
|
||||
|
||||
const ZCNodePointC& operator-=(TypeSize AL_Distance) const
|
||||
const ZCNodePointN& operator-=(TypeSize AL_Distance) const
|
||||
{
|
||||
mp_CurrLink = &((*mp_CurrLink)-AL_Distance);
|
||||
ml_CurrPos -= AL_Distance ;
|
||||
|
||||
return *this; /*::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
const ZCNodePointC& operator-=(TypeSize AL_Distance) const*/
|
||||
const ZCNodePointN& operator-=(TypeSize AL_Distance) const*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZCNodePointC*/
|
||||
class ZCNodePointN*/
|
||||
|
||||
|
||||
class ZCLinkPointEx : public ZCNodePoint
|
||||
@ -8507,7 +8518,7 @@ namespace ZNsMain
|
||||
void MoveNextIter(IterEasyIDc& ARRI_IterEasyID ) const
|
||||
{ MoveNextIter((TypeLinkC*&)(ARRI_IterEasyID)); }
|
||||
void MoveNextIter(iterator & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void MoveNextIter(iteratorC & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void MoveNextIter(iteratorN & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
|
||||
|
||||
void MovePrevIter(ZCLink* & APR_CLink ) const
|
||||
@ -8519,7 +8530,7 @@ namespace ZNsMain
|
||||
void MovePrevIter(IterEasyIDc& ARRI_IterEasyID ) const
|
||||
{ MovePrevIter((TypeLinkC*&)(ARRI_IterEasyID)); }
|
||||
void MovePrevIter(iterator & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void MovePrevIter(iteratorC & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void MovePrevIter(iteratorN & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
|
||||
|
||||
TypeData & GetDataInIter(ZCLink* AP_CLink ){return **AP_CLink ;}
|
||||
@ -8531,7 +8542,7 @@ namespace ZNsMain
|
||||
{ return **AP_CLink ;}
|
||||
TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID ) const
|
||||
{ return GetDataInIter((TypeLinkC*)ARRI_IterEasyID); }
|
||||
TypeDataC& GetDataInIter(iteratorC& ARR_Iterator )
|
||||
TypeDataC& GetDataInIter(iteratorN& ARR_Iterator )
|
||||
{ return *ARR_Iterator ;}
|
||||
|
||||
|
||||
@ -8546,14 +8557,17 @@ namespace ZNsMain
|
||||
{return **(AP_CLink->GetNextPrePtr(AI_FarNum)) ; }
|
||||
TypeDataC& GetDataInIter( IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const
|
||||
{ return GetDataInIter((ZCLinkC*)ARRI_IterEasyID , AI_FarNum); }
|
||||
TypeDataC& GetDataInIter( iteratorC& ARR_Iterator , TypeSize AI_FarNum) const
|
||||
TypeDataC& GetDataInIter( iteratorN& ARR_Iterator , TypeSize AI_FarNum) const
|
||||
{ return GetDataInIter((ZCLinkC*)ARR_Iterator , AI_FarNum); }
|
||||
|
||||
|
||||
iterator begin () { return ZCNodePoint (*this); }
|
||||
iteratorC begin () const{ return ZCNodePointC(*this); }
|
||||
iteratorN begin () const{ return ZCNodePointN(*this); }
|
||||
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
|
||||
iteratorC end () const{ return ZCNodePointC::MakeTailPoint(*this); }
|
||||
iteratorN end () const{ return ZCNodePointN::MakeTailPoint(*this); }
|
||||
|
||||
iteratorN cbegin () const{ return ZCNodePointN(*this); }
|
||||
iteratorN cend () const{ return ZCNodePointN::MakeTailPoint(*this); }
|
||||
|
||||
|
||||
IterEasy ItHEasy() {return GetHeadIterEasy ();}
|
||||
@ -8573,7 +8587,7 @@ namespace ZNsMain
|
||||
void ItNext(IterEasyID & ARRI_IterEasyID) const{ItNext((ZCLink*&)(ARRI_IterEasyID));}
|
||||
void ItNext(TypeLinkC* & APR_CLink ) const{ APR_CLink=APR_CLink->GetNextPtr() ;}
|
||||
void ItNext(iterator & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void ItNext(iteratorC & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void ItNext(iteratorN & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void ItNext(IterEasyIDc& ARRI_IterEasyID) const
|
||||
{ ItNext((TypeLinkC*&)(ARRI_IterEasyID)); }
|
||||
|
||||
@ -8581,7 +8595,7 @@ namespace ZNsMain
|
||||
void ItPrev(IterEasyID & ARRI_IterEasyID) const{ItPrev((ZCLink*&)(ARRI_IterEasyID));}
|
||||
void ItPrev(TypeLinkC* & APR_CLink ) const{ APR_CLink=APR_CLink->GetPrevPtr() ;}
|
||||
void ItPrev(iterator & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void ItPrev(iteratorC & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void ItPrev(iteratorN & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void ItPrev(IterEasyIDc& ARRI_IterEasyID) const
|
||||
{ ItPrev((TypeLinkC*&)(ARRI_IterEasyID)); }
|
||||
|
||||
@ -8591,7 +8605,7 @@ namespace ZNsMain
|
||||
|
||||
TypeDataC& ItD(IterEasyC AP_CLink ) const {return GetDataInIter(AP_CLink );}
|
||||
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID) const {return GetDataInIter(ARRI_IterEasyID);}
|
||||
TypeDataC& ItD(iteratorC& ARR_Iterator ) const {return GetDataInIter(ARR_Iterator );}
|
||||
TypeDataC& ItD(iteratorN& ARR_Iterator ) const {return GetDataInIter(ARR_Iterator );}
|
||||
/********************************************************************************************************************************/
|
||||
TypeData & ItD(IterEasy AP_CLink , TypeSize AI_FarNum) {return GetDataInIter(AP_CLink , AI_FarNum);}
|
||||
TypeData & ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) {return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
@ -8599,7 +8613,7 @@ namespace ZNsMain
|
||||
|
||||
TypeDataC& ItD(IterEasyC AP_CLink , TypeSize AI_FarNum) const {return GetDataInIter(AP_CLink , AI_FarNum);}
|
||||
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const {return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
TypeDataC& ItD(iteratorC& ARR_Iterator , TypeSize AI_FarNum) const {return GetDataInIter(ARR_Iterator , AI_FarNum);}
|
||||
TypeDataC& ItD(iteratorN& ARR_Iterator , TypeSize AI_FarNum) const {return GetDataInIter(ARR_Iterator , AI_FarNum);}
|
||||
|
||||
public :
|
||||
};/*
|
||||
|
@ -22,7 +22,7 @@ namespace ZNsMain
|
||||
typedef TTypArg TypeArg ;
|
||||
typedef TSize TypeSize ;
|
||||
public:
|
||||
class ZCNodePoint; class ZCNodePointC ;
|
||||
class ZCNodePoint; class ZCNodePointN ;
|
||||
public:
|
||||
typedef TypeData* IterEasy ;
|
||||
typedef TypeData* TypeNode ; // ZCLinkPoint::GetNode() 의 반환형.
|
||||
@ -32,12 +32,17 @@ namespace ZNsMain
|
||||
typedef const TypeThis TypeThisC ;
|
||||
typedef const TypeData TypeDataC ;
|
||||
typedef const TypeNode TypeNodeC ; // ZCLinkPoint::GetNode() const 의 반환형.
|
||||
typedef const TypeIter TypeIterC ;
|
||||
typedef const IterEasy IterEasyC ;
|
||||
|
||||
typedef ZCNodePointC iteratorC ;
|
||||
/**********************************************/
|
||||
typedef const ZCNodePoint ZCNodePointC;
|
||||
typedef const ZCNodePoint iteratorC ;
|
||||
/**********************************************/
|
||||
typedef ZCNodePoint iterator ;
|
||||
typedef ZCNodePointC const_iterator;
|
||||
typedef ZCNodePointN const_iterator;
|
||||
typedef ZCNodePointN iteratorN ;
|
||||
typedef ZCNodePointN TypeIterN ;
|
||||
public:
|
||||
|
||||
|
||||
@ -87,30 +92,30 @@ namespace ZNsMain
|
||||
TypeDataC& operator* () const{return *mp_Data;}
|
||||
TypeDataC* operator->() const{return mp_Data;}
|
||||
|
||||
ZCNodePoint& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCNodePoint operator++(int){++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIter & operator++( ) {++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIter operator++(int) {++mp_Data; ++ml_ElePos; return *this;}
|
||||
|
||||
const ZCNodePoint& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
const ZCNodePoint operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCNodePointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCNodePointC operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
|
||||
ZCNodePoint operator+(TSize AL_AddPos) const
|
||||
TypeIter operator+(TSize AL_AddPos) const
|
||||
{
|
||||
return ZCNodePoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
||||
}/*
|
||||
ZCNodePoint operator+(TSize AL_AddPos) const*/
|
||||
TypeIter operator+(TSize AL_AddPos) const*/
|
||||
|
||||
|
||||
bool operator == (const ZCNodePoint& rhs) const
|
||||
bool operator == (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos == rhs.ml_ElePos; }
|
||||
bool operator != (const ZCNodePoint& rhs) const
|
||||
bool operator != (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos != rhs.ml_ElePos; }
|
||||
bool operator > (const ZCNodePoint& rhs) const
|
||||
bool operator > (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos > rhs.ml_ElePos; }
|
||||
bool operator >= (const ZCNodePoint& rhs) const
|
||||
bool operator >= (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos >= rhs.ml_ElePos; }
|
||||
bool operator < (const ZCNodePoint& rhs) const
|
||||
bool operator < (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos < rhs.ml_ElePos; }
|
||||
bool operator <= (const ZCNodePoint& rhs) const
|
||||
bool operator <= (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos <= rhs.ml_ElePos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
@ -131,7 +136,7 @@ namespace ZNsMain
|
||||
class ZCNodePoint*/
|
||||
|
||||
|
||||
class ZCNodePointC
|
||||
class ZCNodePointN
|
||||
{
|
||||
private:
|
||||
mutable TypeData* mp_Data ;
|
||||
@ -139,7 +144,7 @@ namespace ZNsMain
|
||||
const ZtCArray& mr_CArray;
|
||||
public:
|
||||
|
||||
ZCNodePointC(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
||||
ZCNodePointN(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
||||
mr_CArray(AR_CArray)
|
||||
/*****************************************************************/
|
||||
{
|
||||
@ -147,27 +152,27 @@ namespace ZNsMain
|
||||
mr_CArray=&AR_CArray;
|
||||
ml_ElePos=AL_ElePos ;
|
||||
}/*
|
||||
ZCNodePointC(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
|
||||
ZCNodePointN(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
|
||||
|
||||
ZCNodePointC(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
|
||||
ZCNodePointN(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
|
||||
{
|
||||
mp_Data = AR_CArray.mp_TypeArr ;
|
||||
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
|
||||
}/*
|
||||
ZCNodePointC(ZtCArray& AR_CArray)*/
|
||||
ZCNodePointN(ZtCArray& AR_CArray)*/
|
||||
|
||||
ZCNodePointC(const ZCNodePointC& rhs) : mr_CArray(rhs.mr_CArray)
|
||||
ZCNodePointN(const ZCNodePointN& rhs) : mr_CArray(rhs.mr_CArray)
|
||||
{
|
||||
mp_Data = rhs.mp_TypeArr ;
|
||||
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
|
||||
}/*
|
||||
ZCNodePointC(const ZCNodePointC& rhs)*/
|
||||
ZCNodePointC(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
|
||||
ZCNodePointN(const ZCNodePointN& rhs)*/
|
||||
ZCNodePointN(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
|
||||
{
|
||||
mp_Data = rhs.mp_TypeArr ;
|
||||
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
|
||||
}/*
|
||||
ZCNodePointC(const ZCNodePoint & rhs)*/
|
||||
ZCNodePointN(const ZCNodePoint & rhs)*/
|
||||
|
||||
|
||||
TypeSize size () const{return mr_CArray.size();}
|
||||
@ -177,30 +182,27 @@ namespace ZNsMain
|
||||
TypeDataC* operator->() const{return mp_Data;}
|
||||
|
||||
|
||||
ZCNodePointC& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCNodePointC operator++(int){++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIterN& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIterN operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
|
||||
const ZCNodePointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
const ZCNodePointC operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
|
||||
ZCNodePointC operator+(TSize AL_AddPos) const
|
||||
TypeIterN operator+(TSize AL_AddPos) const
|
||||
{
|
||||
return ZCNodePointC(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
||||
return ZCNodePointN(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
||||
}/*
|
||||
ZCNodePointC operator+(TSize AL_AddPos) const*/
|
||||
TypeIterN operator+(TSize AL_AddPos) const*/
|
||||
|
||||
|
||||
bool operator == (const ZCNodePointC& rhs) const
|
||||
bool operator == (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos == rhs.ml_ElePos; }
|
||||
bool operator != (const ZCNodePointC& rhs) const
|
||||
bool operator != (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos != rhs.ml_ElePos; }
|
||||
bool operator > (const ZCNodePointC& rhs) const
|
||||
bool operator > (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos > rhs.ml_ElePos; }
|
||||
bool operator >= (const ZCNodePointC& rhs) const
|
||||
bool operator >= (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos >= rhs.ml_ElePos; }
|
||||
bool operator < (const ZCNodePointC& rhs) const
|
||||
bool operator < (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos < rhs.ml_ElePos; }
|
||||
bool operator <= (const ZCNodePointC& rhs) const
|
||||
bool operator <= (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos <= rhs.ml_ElePos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
@ -218,7 +220,7 @@ namespace ZNsMain
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZCNodePointC*/
|
||||
class ZCNodePointN*/
|
||||
|
||||
|
||||
public :
|
||||
@ -465,11 +467,11 @@ namespace ZNsMain
|
||||
void push_front(TypeArg AR_TypeArg){AddHead(AR_TypeArg);}
|
||||
void push_back (TypeArg AR_TypeArg){AddTail(AR_TypeArg);}
|
||||
|
||||
Type& push_front(){return AddHead();}
|
||||
Type& push_back (){return AddTail();}
|
||||
TypeData& push_front(){return AddHead();}
|
||||
TypeData& push_back (){return AddTail();}
|
||||
|
||||
/***/ ZCNodePoint begin() {return ZCNodePoint(*this);}
|
||||
const ZCNodePoint begin() const{return ZCNodePoint(*this);}
|
||||
TypeIter begin() {return ZCNodePoint (*this);}
|
||||
TypeIterN begin() const{return ZCNodePointN(*this);}
|
||||
|
||||
|
||||
template<typename TFunctor> void IterElement(TFunctor AO_Functor)
|
||||
@ -666,101 +668,102 @@ namespace ZNsMain
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
Type* GetHeadIterEasy (){return mp_TypeArr ;}
|
||||
Type* GetTailIterEasy (){return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyID GetHeadIterEasyID(){return (IterEasyID) mp_TypeArr ;}
|
||||
IterEasyID GetTailIterEasyID(){return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
TypeData * GetHeadIterEasy () {return mp_TypeArr ;}
|
||||
TypeData * GetTailIterEasy () {return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyID GetHeadIterEasyID() {return (IterEasyID) mp_TypeArr ;}
|
||||
IterEasyID GetTailIterEasyID() {return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
const Type* GetHeadIterEasy () const{return mp_TypeArr ;}
|
||||
const Type* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID) mp_TypeArr ;}
|
||||
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
TypeDataC* GetHeadIterEasy () const{return mp_TypeArr ;}
|
||||
TypeDataC* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyIDc GetHeadIterEasyID() const{return (IterEasyID) mp_TypeArr ;}
|
||||
IterEasyIDc GetTailIterEasyID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
void MoveNextIter(Type*& APR_CType ) const{++APR_CType ;}
|
||||
void MoveNextIter(iterator& ARR_CIterator) const{++ARR_CIterator;}
|
||||
void MoveNextIter(IterEasyID& AI_IterEasyID) const
|
||||
{ MoveNextIter((Type*&)AI_IterEasyID); }
|
||||
void MoveNextIter(const Type*& APR_CType ) const{++APR_CType ;}
|
||||
void MoveNextIter(const iterator& ARR_CIterator) const{++ARR_CIterator;}
|
||||
void MoveNextIter(const IterEasyID& AI_IterEasyID)
|
||||
const{ MoveNextIter((const Type*&)AI_IterEasyID); }
|
||||
void MoveNextIter(TypeData* & APR_CType ) const{++APR_CType ;}
|
||||
void MoveNextIter(iterator & ARR_CIterator) const{++ARR_CIterator;}
|
||||
void MoveNextIter(IterEasyID & AI_IterEasyID) const
|
||||
{ MoveNextIter((TypeData*&)AI_IterEasyID); }
|
||||
void MoveNextIter(TypeDataC* & APR_CType ) const{++APR_CType ;}
|
||||
void MoveNextIter(iteratorC& ARR_CIterator) const{++ARR_CIterator;}
|
||||
void MoveNextIter(IterEasyIDc& AI_IterEasyID)
|
||||
const{ MoveNextIter((TypeDataC*&)AI_IterEasyID); }
|
||||
|
||||
void MovePrevIter(Type*& APR_CType ) const{--APR_CType ;}
|
||||
void MovePrevIter(iterator& ARR_CIterator) const{--ARR_CIterator;}
|
||||
void MovePrevIter(IterEasyID& AI_IterEasyID) const
|
||||
{ MovePrevIter((Type*&)AI_IterEasyID); }
|
||||
void MovePrevIter(const Type*& APR_CType ) const{--APR_CType ;}
|
||||
void MovePrevIter(const iterator& ARR_CIterator) const{--ARR_CIterator;}
|
||||
void MovePrevIter(const IterEasyID& AI_IterEasyID)
|
||||
const{ MovePrevIter((const Type*&)AI_IterEasyID); }
|
||||
void MovePrevIter(TypeData* & APR_CType ) const{--APR_CType ;}
|
||||
void MovePrevIter(iterator & ARR_CIterator) const{--ARR_CIterator;}
|
||||
void MovePrevIter(IterEasyID & AI_IterEasyID) const
|
||||
{ MovePrevIter((TypeData*&)AI_IterEasyID); }
|
||||
void MovePrevIter(TypeDataC* & APR_CType ) const{--APR_CType ;}
|
||||
void MovePrevIter(iteratorC & ARR_CIterator) const{--ARR_CIterator;}
|
||||
void MovePrevIter(IterEasyIDc& AI_IterEasyID)
|
||||
const{ MovePrevIter((TypeDataC*&)AI_IterEasyID); }
|
||||
|
||||
|
||||
Type& GetDataInIter(Type* AP_CType ){return *AP_CType ;}
|
||||
Type& GetDataInIter(iterator& ARR_CIterator){return *ARR_CIterator ;}
|
||||
Type& GetDataInIter(IterEasyID AI_IterEasyID){return *(Type*)AI_IterEasyID;}
|
||||
TypeData& GetDataInIter(TypeData * AP_CType ) {return *AP_CType ;}
|
||||
TypeData& GetDataInIter(iterator & ARR_CIterator) {return *ARR_CIterator;}
|
||||
TypeData& GetDataInIter(IterEasyID AI_IterEasyID)
|
||||
{ return *(TypeData *)AI_IterEasyID; }
|
||||
|
||||
const Type& GetDataInIter(const Type* AP_CType ) const{return *AP_CType;}
|
||||
const Type& GetDataInIter(const iterator& ARR_CIterator) const{return *ARR_CIterator;}
|
||||
const Type& GetDataInIter(const IterEasyID AI_IterEasyID) const
|
||||
{ return *(const Type*)AI_IterEasyID; }
|
||||
TypeDataC& GetDataInIter(TypeDataC * AP_CType ) const{return *AP_CType;}
|
||||
TypeDataC& GetDataInIter(iteratorC & ARR_CIterator) const{return *ARR_CIterator;}
|
||||
TypeDataC& GetDataInIter(IterEasyIDc AI_IterEasyID) const
|
||||
{ return *(TypeDataC*)AI_IterEasyID; }
|
||||
|
||||
|
||||
Type& GetDataInIter(Type* AP_Type , TypeSize AI_FarNum)
|
||||
TypeData & GetDataInIter(TypeData * AP_Type , TypeSize AI_FarNum)
|
||||
{ return *(AP_Type + AI_FarNum) ; }
|
||||
Type& GetDataInIter(iterator& ARR_CIterator , TypeSize AI_FarNum)
|
||||
TypeData & GetDataInIter(iterator & ARR_CIterator , TypeSize AI_FarNum)
|
||||
{ return *(ARR_CIterator+AI_FarNum) ; }
|
||||
Type& GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
|
||||
{ return GetDataInIter((Type*)ARRI_IterEasyID, AI_FarNum); }
|
||||
TypeData & GetDataInIter(IterEasyID ARRI_IterEasyID , TypeSize AI_FarNum)
|
||||
{ return GetDataInIter((TypeData*)ARRI_IterEasyID , AI_FarNum); }
|
||||
|
||||
const Type& GetDataInIter(const Type* AP_Type , TypeSize AI_FarNum) const
|
||||
TypeDataC& GetDataInIter(TypeDataC * AP_Type , TypeSize AI_FarNum) const
|
||||
{ return *(AP_Type + AI_FarNum); }
|
||||
const Type& GetDataInIter(iterator& ARR_CIterator, TypeSize AI_FarNum) const
|
||||
TypeDataC& GetDataInIter(iterator & ARR_CIterator , TypeSize AI_FarNum) const
|
||||
{ return *(ARR_CIterator+AI_FarNum); }
|
||||
const Type& GetDataInIter(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const
|
||||
{ return GetDataInIter((const Type*)ARRI_IterEasyID, AI_FarNum); }
|
||||
TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID , TypeSize AI_FarNum) const
|
||||
{ return GetDataInIter((TypeDataC*)ARRI_IterEasyID, AI_FarNum); }
|
||||
|
||||
|
||||
Type* ItHEasy(){return mp_TypeArr ;}
|
||||
Type* ItTEasy(){return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyID ItHID (){return (IterEasyID) mp_TypeArr ;}
|
||||
IterEasyID ItTID (){return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
TypeData * ItHEasy() {return mp_TypeArr ;}
|
||||
TypeData * ItTEasy() {return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyID ItHID () {return (IterEasyID) mp_TypeArr ;}
|
||||
IterEasyID ItTID () {return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
const Type* ItHEasy () const{return mp_TypeArr ;}
|
||||
const Type* ItTEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||
const IterEasyID ItHID() const{return (IterEasyID) mp_TypeArr ;}
|
||||
const IterEasyID ItTID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
TypeDataC* ItHEasy() const{return mp_TypeArr ;}
|
||||
TypeDataC* ItTEasy() const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyIDc ItHID () const{return (IterEasyID) mp_TypeArr ;}
|
||||
IterEasyIDc ItTID () const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
void ItNext(Type*& APR_CType ) const{++APR_CType ;}
|
||||
void ItNext(iterator& ARR_CIterator) const{++ARR_CIterator;}
|
||||
void ItNext(IterEasyID& AI_IterEasyID) const
|
||||
{ ItNext((Type*&)AI_IterEasyID); }
|
||||
void ItNext(const Type*& APR_CType ) const{++APR_CType ;}
|
||||
void ItNext(const iterator& ARR_CIterator) const{++ARR_CIterator;}
|
||||
void ItNext(const IterEasyID& AI_IterEasyID)
|
||||
const{ ItNext((const Type*&)AI_IterEasyID); }
|
||||
void ItNext(TypeData* & APR_CType ) const{++APR_CType ;}
|
||||
void ItNext(iterator & ARR_CIterator) const{++ARR_CIterator;}
|
||||
void ItNext(IterEasyID & AI_IterEasyID) const
|
||||
{ ItNext((TypeData*&)AI_IterEasyID); }
|
||||
void ItNext(TypeDataC* & APR_CType ) const{++APR_CType ;}
|
||||
void ItNext(iteratorC & ARR_CIterator) const{++ARR_CIterator;}
|
||||
void ItNext(IterEasyIDc& AI_IterEasyID)
|
||||
const{ ItNext((TypeDataC*&)AI_IterEasyID); }
|
||||
|
||||
void ItPrev(Type*& APR_CType ) const{--APR_CType ;}
|
||||
void ItPrev(iterator& ARR_CIterator) const{--ARR_CIterator;}
|
||||
void ItPrev(IterEasyID& AI_IterEasyID) const
|
||||
{ ItPrev((Type*&)AI_IterEasyID); }
|
||||
void ItPrev(const Type*& APR_CType ) const{--APR_CType ;}
|
||||
void ItPrev(const iterator& ARR_CIterator) const{--ARR_CIterator;}
|
||||
void ItPrev(const IterEasyID& AI_IterEasyID)
|
||||
const{ ItPrev((const Type*&)AI_IterEasyID); }
|
||||
void ItPrev(TypeData* & APR_CType ) const{--APR_CType ;}
|
||||
void ItPrev(iterator & ARR_CIterator) const{--ARR_CIterator;}
|
||||
void ItPrev(IterEasyID & AI_IterEasyID) const
|
||||
{ ItPrev((TypeData*&)AI_IterEasyID); }
|
||||
void ItPrev(TypeDataC* & APR_CType ) const{--APR_CType ;}
|
||||
void ItPrev(iteratorC & ARR_CIterator) const{--ARR_CIterator;}
|
||||
void ItPrev(IterEasyIDc& AI_IterEasyID)
|
||||
const{ ItPrev((TypeDataC*&)AI_IterEasyID); }
|
||||
|
||||
Type& ItD(Type* AP_Type ){return GetDataInIter(AP_Type );}
|
||||
Type& ItD(iterator& ARR_CIterator ){return GetDataInIter(ARR_CIterator );}
|
||||
Type& ItD(IterEasyID ARRI_IterEasyID ){return GetDataInIter(ARRI_IterEasyID );}
|
||||
Type& ItD(Type* AP_Type , TypeSize AI_FarNum){return GetDataInIter(AP_Type , AI_FarNum );}
|
||||
Type& ItD(iterator& ARR_CIterator , TypeSize AI_FarNum){return GetDataInIter(ARR_CIterator , AI_FarNum);}
|
||||
Type& ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum){return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
TypeData & ItD(TypeData * AP_Type ) {return GetDataInIter(AP_Type );}
|
||||
TypeData & ItD(iterator & ARR_CIterator ) {return GetDataInIter(ARR_CIterator );}
|
||||
TypeData & ItD(IterEasyID ARRI_IterEasyID ) {return GetDataInIter(ARRI_IterEasyID );}
|
||||
TypeData & ItD(TypeData * AP_Type , TypeSize AI_FarNum) {return GetDataInIter(AP_Type , AI_FarNum );}
|
||||
TypeData & ItD(iterator & ARR_CIterator , TypeSize AI_FarNum) {return GetDataInIter(ARR_CIterator , AI_FarNum);}
|
||||
TypeData & ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) {return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
|
||||
const Type& ItD(const Type* AP_Type ) const{return GetDataInIter(AP_Type );}
|
||||
const Type& ItD(const iterator& ARR_CIterator ) const{return GetDataInIter(ARR_CIterator );}
|
||||
const Type& ItD(const IterEasyID ARRI_IterEasyID ) const{return GetDataInIter(ARRI_IterEasyID );}
|
||||
const Type& ItD(const Type* AP_Type , TypeSize AI_FarNum) const{return GetDataInIter(AP_Type );}
|
||||
const Type& ItD(const iterator& ARR_CIterator , TypeSize AI_FarNum) const{return GetDataInIter(ARR_CIterator , AI_FarNum);}
|
||||
const Type& ItD(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const{return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
TypeDataC& ItD(TypeDataC * AP_Type ) const{return GetDataInIter(AP_Type );}
|
||||
TypeDataC& ItD(iteratorC & ARR_CIterator ) const{return GetDataInIter(ARR_CIterator );}
|
||||
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID ) const{return GetDataInIter(ARRI_IterEasyID );}
|
||||
TypeDataC& ItD(TypeDataC * AP_Type , TypeSize AI_FarNum) const{return GetDataInIter(AP_Type );}
|
||||
TypeDataC& ItD(iteratorC & ARR_CIterator , TypeSize AI_FarNum) const{return GetDataInIter(ARR_CIterator , AI_FarNum);}
|
||||
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const{return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
|
||||
public:
|
||||
};/*
|
||||
|
@ -796,7 +796,7 @@ namespace ZNsMain
|
||||
public:
|
||||
class ZCLink ;
|
||||
class ZCNodePoint ;
|
||||
class ZCNodePointC ;
|
||||
class ZCNodePointN ;
|
||||
public:
|
||||
template<typename TypeObjList> friend class ZtCSortObjList;
|
||||
/*********************************************************************/
|
||||
@ -818,10 +818,10 @@ namespace ZNsMain
|
||||
|
||||
typedef ZCLink* IterEasy ; // 가장 간단하게 쓰일 수 있는 반복자.
|
||||
typedef ZCNodePoint TypeIter ;
|
||||
typedef ZCNodePointC TypeIterC ;
|
||||
typedef ZCNodePointN TypeIterN ;
|
||||
/*********************************************************************/
|
||||
typedef ZCNodePoint iterator ; // 다양한 기능을 가진 반복자.
|
||||
typedef ZCNodePointC const_iterator;
|
||||
typedef ZCNodePointN const_iterator;
|
||||
/*********************************************************************/
|
||||
|
||||
typedef const TypeThis TypeThisC ;
|
||||
@ -835,7 +835,7 @@ namespace ZNsMain
|
||||
typedef const ZCDataOpt ZCDataOptC ;
|
||||
typedef const IterEasy IterEasyC ;
|
||||
|
||||
typedef ZCNodePointC iteratorC ;
|
||||
typedef ZCNodePointN iteratorN ;
|
||||
|
||||
/*********************************************************************/
|
||||
typedef typename TFeeeHeap::
|
||||
@ -1207,61 +1207,61 @@ namespace ZNsMain
|
||||
class ZCNodePoint*/
|
||||
|
||||
|
||||
class ZCNodePointC
|
||||
class ZCNodePointN
|
||||
{
|
||||
protected:
|
||||
const TypeList& mr_CurrList;
|
||||
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
|
||||
mutable TypeSize ml_CurrPos ;
|
||||
public :
|
||||
ZCNodePointC(const TypeList& AR_TypeList) :
|
||||
ZCNodePointN(const TypeList& AR_TypeList) :
|
||||
mr_CurrList(AR_TypeList)
|
||||
{
|
||||
mp_CurrLink = AR_TypeList.HeadPtr();
|
||||
ml_CurrPos = 1 ;
|
||||
}
|
||||
ZCNodePointC(const ZCNodePoint & rhs) :
|
||||
ZCNodePointN(const ZCNodePoint & rhs) :
|
||||
mr_CurrList( rhs.GetMain()),
|
||||
mp_CurrLink(&rhs.GetNode()),
|
||||
ml_CurrPos ( rhs.GetPos ())
|
||||
{}
|
||||
ZCNodePointC(const ZCNodePointC& rhs) :
|
||||
ZCNodePointN(const ZCNodePointN& rhs) :
|
||||
mr_CurrList(rhs.mr_CurrList),
|
||||
mp_CurrLink(rhs.mp_CurrLink),
|
||||
ml_CurrPos (rhs.ml_CurrPos )
|
||||
{}
|
||||
public :
|
||||
|
||||
static ZCNodePointC MakeTailPoint(const TypeList& AR_TypeList)
|
||||
static ZCNodePointN MakeTailPoint(const TypeList& AR_TypeList)
|
||||
{
|
||||
ZCNodePointC VO_ZCLinkPoint(AR_TypeList);
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_TypeList);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZCNodePointC MakeTailPoint(const TypeList& AR_TypeList)*/
|
||||
static ZCNodePointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)
|
||||
static ZCNodePointN MakeTailPoint(const TypeList& AR_TypeList)*/
|
||||
static ZCNodePointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)
|
||||
{
|
||||
ZCNodePointC VO_ZCLinkPoint(AR_TypeIter);
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZCNodePointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
|
||||
static ZCNodePointC MakeTailPoint(const ZCNodePointC& AR_TypeIter)
|
||||
static ZCNodePointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
|
||||
static ZCNodePointN MakeTailPoint(const ZCNodePointN& AR_TypeIter)
|
||||
{
|
||||
ZCNodePointC VO_ZCLinkPoint(AR_TypeIter);
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZCNodePointC MakeTailPoint(const ZCNodePointC& AR_TypeIter)*/
|
||||
static ZCNodePointN MakeTailPoint(const ZCNodePointN& AR_TypeIter)*/
|
||||
|
||||
public :
|
||||
|
||||
@ -1276,7 +1276,7 @@ namespace ZNsMain
|
||||
bool IsEmpty() const{return mr_CurrList.size()<1;}
|
||||
|
||||
|
||||
ZCNodePointC& operator= (const ZCNodePointC& rhs){ return *this; }
|
||||
ZCNodePointN& operator= (const ZCNodePointN& rhs){ return *this; }
|
||||
|
||||
|
||||
TypeDataC& operator*() const{return **mp_CurrLink;}
|
||||
@ -1284,17 +1284,17 @@ namespace ZNsMain
|
||||
operator TypeNodeC& () const{return *mp_CurrLink;}
|
||||
|
||||
|
||||
bool operator == (const ZCNodePointC& rhs) const
|
||||
bool operator == (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos == rhs.ml_CurrPos; }
|
||||
bool operator != (const ZCNodePointC& rhs) const
|
||||
bool operator != (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos != rhs.ml_CurrPos; }
|
||||
bool operator > (const ZCNodePointC& rhs) const
|
||||
bool operator > (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos > rhs.ml_CurrPos; }
|
||||
bool operator >= (const ZCNodePointC& rhs) const
|
||||
bool operator >= (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos >= rhs.ml_CurrPos; }
|
||||
bool operator < (const ZCNodePointC& rhs) const
|
||||
bool operator < (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos < rhs.ml_CurrPos; }
|
||||
bool operator <= (const ZCNodePointC& rhs) const
|
||||
bool operator <= (const ZCNodePointN& rhs) const
|
||||
{ return ml_CurrPos <= rhs.ml_CurrPos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
@ -1311,44 +1311,44 @@ namespace ZNsMain
|
||||
{ return ml_CurrPos <= AL_Size; }
|
||||
|
||||
|
||||
const ZCNodePointC& operator++() const
|
||||
const ZCNodePointN& operator++() const
|
||||
{
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos; return *this ;
|
||||
}/*
|
||||
const ZCNodePointC& operator++() const*/
|
||||
const ZCNodePointN& operator++() const*/
|
||||
|
||||
const ZCNodePointC& operator--() const
|
||||
const ZCNodePointN& operator--() const
|
||||
{
|
||||
mp_CurrLink = mp_CurrLink->mp_PrevLink;
|
||||
|
||||
--ml_CurrPos; return *this ;
|
||||
}/*
|
||||
const ZCNodePointC& operator--() const*/
|
||||
const ZCNodePointN& operator--() const*/
|
||||
|
||||
ZCNodePointC operator++(int) const
|
||||
ZCNodePointN operator++(int) const
|
||||
{
|
||||
ZCNodePointC VO_NowPoint(*this);
|
||||
ZCNodePointN VO_NowPoint(*this);
|
||||
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos ; return VO_NowPoint ;
|
||||
}/*
|
||||
ZCNodePointC operator++(int) const*/
|
||||
ZCNodePointN operator++(int) const*/
|
||||
|
||||
ZCNodePointC operator--(int) const
|
||||
ZCNodePointN operator--(int) const
|
||||
{
|
||||
ZCNodePointC VO_NowPoint(*this);
|
||||
ZCNodePointN VO_NowPoint(*this);
|
||||
|
||||
mp_CurrLink = mp_CurrLink->mp_PrevLink;
|
||||
|
||||
--ml_CurrPos; return VO_NowPoint ;
|
||||
}/*
|
||||
ZCNodePointC operator--(int) const*/
|
||||
ZCNodePointN operator--(int) const*/
|
||||
|
||||
|
||||
const ZCNodePointC& operator+=(TypeSize AL_Distance) const
|
||||
const ZCNodePointN& operator+=(TypeSize AL_Distance) const
|
||||
{
|
||||
if(IsEmpty()){return *this;}
|
||||
|
||||
@ -1357,20 +1357,20 @@ namespace ZNsMain
|
||||
|
||||
return *this; /*:::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
const ZCNodePointC& operator+=(TypeSize AL_Distance) const*/
|
||||
const ZCNodePointN& operator+=(TypeSize AL_Distance) const*/
|
||||
|
||||
const ZCNodePointC& operator-=(TypeSize AL_Distance) const
|
||||
const ZCNodePointN& operator-=(TypeSize AL_Distance) const
|
||||
{
|
||||
mp_CurrLink = &((*mp_CurrLink)-AL_Distance);
|
||||
ml_CurrPos -= AL_Distance ;
|
||||
|
||||
return *this; /*::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
const ZCNodePointC& operator-=(TypeSize AL_Distance) const*/
|
||||
const ZCNodePointN& operator-=(TypeSize AL_Distance) const*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZCNodePointC*/
|
||||
class ZCNodePointN*/
|
||||
|
||||
|
||||
class ZCLinkPointEx : public ZCNodePoint
|
||||
@ -3081,7 +3081,7 @@ namespace ZNsMain
|
||||
{ MoveNextIter((TypeLinkC*&)(ARRI_IterEasyID));
|
||||
}
|
||||
void MoveNextIter(iterator & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void MoveNextIter(iteratorC & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void MoveNextIter(iteratorN & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
|
||||
void MovePrevIter(ZCLink* & APR_CLink ) const
|
||||
{ APR_CLink=APR_CLink->GetPrevPtr();
|
||||
@ -3096,7 +3096,7 @@ namespace ZNsMain
|
||||
{ MovePrevIter((TypeLinkC*&)(ARRI_IterEasyID));
|
||||
}
|
||||
void MovePrevIter(iterator & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void MovePrevIter(iteratorC & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void MovePrevIter(iteratorN & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
|
||||
|
||||
TypeData & GetDataInIter(ZCLink* AP_CLink ){return **AP_CLink ;}
|
||||
@ -3106,30 +3106,33 @@ namespace ZNsMain
|
||||
|
||||
TypeDataC& GetDataInIter(TypeLinkC* AP_CLink ) const
|
||||
{ return **AP_CLink ; }
|
||||
TypeDataC& GetDataInIter(iteratorC AR_Iterator ) const{return *AR_Iterator;}
|
||||
TypeDataC& GetDataInIter(iteratorN AR_Iterator ) const{return *AR_Iterator;}
|
||||
TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID) const
|
||||
{ return GetDataInIter((TypeLinkC*)ARRI_IterEasyID); }
|
||||
|
||||
|
||||
TypeData & GetDataInIter(TypeLink* AP_CLink , TypeSize AI_FarNum)
|
||||
TypeData & GetDataInIter(TypeLink * AP_CLink , TypeSize AI_FarNum)
|
||||
{return **(AP_CLink->GetNextPrevPtr(AI_FarNum)) ; }
|
||||
TypeData & GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
|
||||
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID , AI_FarNum); }
|
||||
TypeData & GetDataInIter(iterator& ARR_Iterator , TypeSize AI_FarNum)
|
||||
TypeData & GetDataInIter(iterator & ARR_Iterator , TypeSize AI_FarNum)
|
||||
{ return GetDataInIter((ZCLink*)ARR_Iterator , AI_FarNum); }
|
||||
|
||||
TypeDataC& GetDataInIter(TypeLinkC* AP_CLink , TypeSize AI_FarNum) const
|
||||
{return **(AP_CLink->GetNextPrePtr(AI_FarNum)) ; }
|
||||
TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const
|
||||
{ return GetDataInIter((ZCLinkC*)ARRI_IterEasyID, AI_FarNum); }
|
||||
TypeDataC& GetDataInIter(iteratorC& ARR_Iterator , TypeSize AI_FarNum) const
|
||||
TypeDataC& GetDataInIter(iteratorN& ARR_Iterator , TypeSize AI_FarNum) const
|
||||
{ return GetDataInIter((ZCLinkC*)ARR_Iterator , AI_FarNum); }
|
||||
|
||||
|
||||
iterator begin () { return ZCNodePoint (*this); }
|
||||
iteratorC begin () const{ return ZCNodePointC(*this); }
|
||||
iteratorN begin () const{ return ZCNodePointN(*this); }
|
||||
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
|
||||
iteratorC end () const{ return ZCNodePointC::MakeTailPoint(*this); }
|
||||
iteratorN end () const{ return ZCNodePointN::MakeTailPoint(*this); }
|
||||
|
||||
iteratorN cbegin () const{ return ZCNodePointN(*this); }
|
||||
iteratorN cend () const{ return ZCNodePointN::MakeTailPoint(*this); }
|
||||
|
||||
|
||||
IterEasy ItHEasy() {return GetHeadIterEasy (); }
|
||||
@ -3149,7 +3152,7 @@ namespace ZNsMain
|
||||
void ItNext(iterator & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void ItNext(IterEasyID & ARRI_IterEasyID) const{ItNext((ZCLink*&)(ARRI_IterEasyID));}
|
||||
void ItNext(TypeLinkC* & APR_CLink ) const{ APR_CLink=APR_CLink->GetNextPtr() ;}
|
||||
void ItNext(iteratorC & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void ItNext(iteratorN & ARR_Iterator ) const{++ARR_Iterator;}
|
||||
void ItNext(IterEasyIDc& ARRI_IterEasyID) const
|
||||
{ ItNext((TypeLinkC*&)(ARRI_IterEasyID)); }
|
||||
|
||||
@ -3157,26 +3160,26 @@ namespace ZNsMain
|
||||
void ItPrev(iterator & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void ItPrev(IterEasyID & ARRI_IterEasyID) const{ItPrev((ZCLink*&)(ARRI_IterEasyID));}
|
||||
void ItPrev(TypeLinkC* & APR_CLink ) const{ APR_CLink=APR_CLink->GetPrevPtr() ;}
|
||||
void ItPrev(iteratorC & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void ItPrev(iteratorN & ARR_Iterator ) const{--ARR_Iterator;}
|
||||
void ItPrev(IterEasyIDc& ARRI_IterEasyID) const
|
||||
{ ItPrev((TypeLinkC*&)(ARRI_IterEasyID)); }
|
||||
|
||||
TypeData & ItD(IterEasy AP_CLink ) {return GetDataInIter(AP_CLink );}
|
||||
TypeData & ItD(IterEasyID ARRI_IterEasyID) {return GetDataInIter(ARRI_IterEasyID);}
|
||||
TypeData & ItD(iterator& ARR_Iterator ) {return GetDataInIter(ARR_Iterator );}
|
||||
TypeData & ItD(iterator & ARR_Iterator ) {return GetDataInIter(ARR_Iterator );}
|
||||
|
||||
TypeDataC& ItD(IterEasyC AP_CLink ) const{return GetDataInIter(AP_CLink );}
|
||||
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID) const{return GetDataInIter(ARRI_IterEasyID);}
|
||||
TypeDataC& ItD(iteratorC& ARR_Iterator ) const{return GetDataInIter(ARR_Iterator );}
|
||||
TypeDataC& ItD(iteratorN& ARR_Iterator ) const{return GetDataInIter(ARR_Iterator );}
|
||||
|
||||
|
||||
TypeData & ItD(IterEasy AP_CLink , TypeSize AI_FarNum) {return GetDataInIter(AP_CLink , AI_FarNum);}
|
||||
TypeData & ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) {return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
TypeData & ItD(iterator& ARR_Iterator , TypeSize AI_FarNum) {return GetDataInIter(ARR_Iterator , AI_FarNum);}
|
||||
TypeData & ItD(iterator & ARR_Iterator , TypeSize AI_FarNum) {return GetDataInIter(ARR_Iterator , AI_FarNum);}
|
||||
|
||||
TypeDataC& ItD(IterEasyC AP_CLink , TypeSize AI_FarNum) const{return GetDataInIter(AP_CLink , AI_FarNum);}
|
||||
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const{return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
TypeDataC& ItD(iteratorC& ARR_Iterator , TypeSize AI_FarNum) const{return GetDataInIter(ARR_Iterator , AI_FarNum);}
|
||||
TypeDataC& ItD(iteratorN& ARR_Iterator , TypeSize AI_FarNum) const{return GetDataInIter(ARR_Iterator , AI_FarNum);}
|
||||
|
||||
|
||||
|
||||
|
@ -769,7 +769,7 @@ namespace ZNsMain
|
||||
public:
|
||||
class ZCLink ;
|
||||
class ZCNodePoint ;
|
||||
class ZNodekPointC;
|
||||
class ZNodekPointN;
|
||||
/**************************************************/
|
||||
typedef TType Type ;
|
||||
typedef TType TypeData ;
|
||||
@ -792,10 +792,11 @@ namespace ZNsMain
|
||||
typedef const TypeList TypeListC ;
|
||||
typedef const TypeLink TypeLinkC ;
|
||||
typedef const TypeNode TypeNodeC ;
|
||||
typedef const TypeIter TypeIterC ;
|
||||
/**************************************************/
|
||||
typedef ZCNodePoint iterator ;
|
||||
typedef ZNodekPointC const_iterator ;
|
||||
typedef ZNodekPointC iteratorC ;
|
||||
typedef ZNodekPointN const_iterator ;
|
||||
typedef ZNodekPointN iteratorN ;
|
||||
/**************************************************/
|
||||
typedef typename TFeeeHeap::
|
||||
template ZtCBody<ZtCSimList> ZCFreeHeap;
|
||||
@ -1098,61 +1099,61 @@ namespace ZNsMain
|
||||
class ZCNodePoint*/
|
||||
|
||||
|
||||
class ZNodekPointC
|
||||
class ZNodekPointN
|
||||
{
|
||||
protected:
|
||||
const TypeList& mr_CurrList;
|
||||
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
|
||||
mutable TypeSize ml_CurrPos ;
|
||||
public :
|
||||
ZNodekPointC(const TypeList& AR_TypeList) :
|
||||
ZNodekPointN(const TypeList& AR_TypeList) :
|
||||
mr_CurrList(AR_TypeList)
|
||||
{
|
||||
mp_CurrLink = AR_TypeList.HeadPtr();
|
||||
ml_CurrPos = 1 ;
|
||||
}
|
||||
ZNodekPointC(const ZCNodePoint & rhs) :
|
||||
ZNodekPointN(const ZCNodePoint & rhs) :
|
||||
mr_CurrList( rhs.GetMain()),
|
||||
mp_CurrLink(&rhs.GetNode()),
|
||||
ml_CurrPos ( rhs.GetPos ())
|
||||
{}
|
||||
ZNodekPointC(const ZNodekPointC& rhs) :
|
||||
ZNodekPointN(const ZNodekPointN& rhs) :
|
||||
mr_CurrList(rhs.mr_CurrList),
|
||||
mp_CurrLink(rhs.mp_CurrLink),
|
||||
ml_CurrPos (rhs.ml_CurrPos )
|
||||
{}
|
||||
public :
|
||||
|
||||
static ZNodekPointC MakeTailPoint(const TypeList& AR_TypeList)
|
||||
static ZNodekPointN MakeTailPoint(const TypeList& AR_TypeList)
|
||||
{
|
||||
ZNodekPointC VO_ZCLinkPoint(AR_TypeList);
|
||||
ZNodekPointN VO_ZCLinkPoint(AR_TypeList);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZNodekPointC MakeTailPoint(const TypeList& AR_TypeList)*/
|
||||
static ZNodekPointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)
|
||||
static ZNodekPointN MakeTailPoint(const TypeList& AR_TypeList)*/
|
||||
static ZNodekPointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)
|
||||
{
|
||||
ZNodekPointC VO_ZCLinkPoint(AR_TypeIter);
|
||||
ZNodekPointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZNodekPointC MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
|
||||
static ZNodekPointC MakeTailPoint(const ZNodekPointC& AR_TypeIter)
|
||||
static ZNodekPointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
|
||||
static ZNodekPointN MakeTailPoint(const ZNodekPointN& AR_TypeIter)
|
||||
{
|
||||
ZNodekPointC VO_ZCLinkPoint(AR_TypeIter);
|
||||
ZNodekPointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZNodekPointC MakeTailPoint(const ZNodekPointC& AR_TypeIter)*/
|
||||
static ZNodekPointN MakeTailPoint(const ZNodekPointN& AR_TypeIter)*/
|
||||
|
||||
public :
|
||||
|
||||
@ -1167,7 +1168,7 @@ namespace ZNsMain
|
||||
bool IsEmpty() const{return mr_CurrList.size()<1;}
|
||||
|
||||
|
||||
ZNodekPointC& operator= (const ZNodekPointC& rhs){ return *this; }
|
||||
ZNodekPointN& operator= (const ZNodekPointN& rhs){ return *this; }
|
||||
|
||||
|
||||
TypeDataC& operator*() const{return **mp_CurrLink;}
|
||||
@ -1175,17 +1176,17 @@ namespace ZNsMain
|
||||
operator TypeLinkC& () const{return *mp_CurrLink;}
|
||||
|
||||
|
||||
bool operator == (const ZNodekPointC& rhs) const
|
||||
bool operator == (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos == rhs.ml_CurrPos; }
|
||||
bool operator != (const ZNodekPointC& rhs) const
|
||||
bool operator != (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos != rhs.ml_CurrPos; }
|
||||
bool operator > (const ZNodekPointC& rhs) const
|
||||
bool operator > (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos > rhs.ml_CurrPos; }
|
||||
bool operator >= (const ZNodekPointC& rhs) const
|
||||
bool operator >= (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos >= rhs.ml_CurrPos; }
|
||||
bool operator < (const ZNodekPointC& rhs) const
|
||||
bool operator < (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos < rhs.ml_CurrPos; }
|
||||
bool operator <= (const ZNodekPointC& rhs) const
|
||||
bool operator <= (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos <= rhs.ml_CurrPos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
@ -1202,26 +1203,26 @@ namespace ZNsMain
|
||||
{ return ml_CurrPos <= AL_Size; }
|
||||
|
||||
|
||||
const ZNodekPointC& operator++() const
|
||||
const ZNodekPointN& operator++() const
|
||||
{
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos; return *this ;
|
||||
}/*
|
||||
const ZNodekPointC& operator++() const*/
|
||||
const ZNodekPointN& operator++() const*/
|
||||
|
||||
ZNodekPointC operator++(int) const
|
||||
ZNodekPointN operator++(int) const
|
||||
{
|
||||
ZNodekPointC VO_NowPoint(*this);
|
||||
ZNodekPointN VO_NowPoint(*this);
|
||||
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos ; return VO_NowPoint ;
|
||||
}/*
|
||||
ZNodekPointC operator++(int) const*/
|
||||
ZNodekPointN operator++(int) const*/
|
||||
|
||||
|
||||
const ZNodekPointC& operator+=(TypeSize AL_Distance) const
|
||||
const ZNodekPointN& operator+=(TypeSize AL_Distance) const
|
||||
{
|
||||
if(IsEmpty()){return *this;}
|
||||
|
||||
@ -1230,11 +1231,11 @@ namespace ZNsMain
|
||||
|
||||
return *this; /*:::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
const ZNodekPointC& operator+=(TypeSize AL_Distance) const*/
|
||||
const ZNodekPointN& operator+=(TypeSize AL_Distance) const*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZNodekPointC*/
|
||||
class ZNodekPointN*/
|
||||
|
||||
|
||||
public :
|
||||
@ -2318,7 +2319,7 @@ namespace ZNsMain
|
||||
void MoveNextIter(iterator & ARR_iterator)
|
||||
{ ++ARR_iterator ; }
|
||||
|
||||
void MoveNextIter(iteratorC& ARR_iterator) const
|
||||
void MoveNextIter(iteratorN& ARR_iterator) const
|
||||
{ ++ARR_iterator ; }
|
||||
|
||||
|
||||
@ -2337,7 +2338,7 @@ namespace ZNsMain
|
||||
TypeDataC& GetDataInIter(IterEasyIDc APPI_IterEasyID) const
|
||||
{ return GetDataInIter((ZCLinkC*)APPI_IterEasyID) ; }
|
||||
|
||||
TypeDataC& GetDataInIter(iteratorC& ARR_iterator) const
|
||||
TypeDataC& GetDataInIter(iteratorN& ARR_iterator) const
|
||||
{ return *ARR_iterator ; }
|
||||
|
||||
|
||||
@ -2369,7 +2370,7 @@ namespace ZNsMain
|
||||
void ItNext(IterEasyIDc& APPI_IterEasyID) const
|
||||
{ MoveNextIter(APPI_IterEasyID) ; }
|
||||
|
||||
void ItNext(iteratorC& ARR_Iterator ) const
|
||||
void ItNext(iteratorN& ARR_Iterator ) const
|
||||
{ ++ARR_Iterator ; }
|
||||
|
||||
|
||||
@ -2388,14 +2389,17 @@ namespace ZNsMain
|
||||
TypeDataC& ItD(IterEasyIDc APPI_IterEasyID ) const
|
||||
{ return ItD((ZCLinkC*)APPI_IterEasyID); }
|
||||
|
||||
TypeDataC& ItD(iteratorC& ARR_Iterator ) const
|
||||
TypeDataC& ItD(iteratorN& ARR_Iterator ) const
|
||||
{ return *ARR_Iterator; }
|
||||
|
||||
|
||||
iterator begin () { return ZCNodePoint (*this); }
|
||||
iteratorC begin () const{ return ZNodekPointC(*this); }
|
||||
iteratorN begin () const{ return ZNodekPointN(*this); }
|
||||
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
|
||||
iteratorC end () const{ return ZNodekPointC::MakeTailPoint(*this); }
|
||||
iteratorN end () const{ return ZNodekPointN::MakeTailPoint(*this); }
|
||||
|
||||
iteratorN cbegin() const{ return ZNodekPointN(*this); }
|
||||
iteratorN cend () const{ return ZNodekPointN::MakeTailPoint(*this); }
|
||||
|
||||
|
||||
ZCLink * HeadPtr() {return mp_HeadLink;}
|
||||
|
@ -691,6 +691,12 @@ namespace ZNsMain
|
||||
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
||||
}
|
||||
|
||||
cout<<endl<<"# VO_ZCBaseListEx10_2 for_ic() show "<<endl;
|
||||
__for_ic(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
||||
{
|
||||
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||
|
@ -369,15 +369,15 @@ namespace ZNsMain
|
||||
|
||||
typedef CStringList1::iterator iterator1 ;
|
||||
//typedef CStringList1::ZCLinkPointEx iteratorEx1;
|
||||
typedef CStringList1::ZCNodePointC iteratorC1 ;
|
||||
typedef CStringList1::ZCNodePointN iteratorN1 ;
|
||||
|
||||
iterator1 VO_Iter1 = VO_ListOfStr11.end();
|
||||
//iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
|
||||
iteratorC1 VO_IterC1(VO_Iter1);
|
||||
iteratorN1 VO_IterN1(VO_Iter1);
|
||||
|
||||
__for_i (CStringList1, VO_ListOfStr11, VO_NowIter)
|
||||
__for_ic (CStringList1, VO_ListOfStr11, VO_NowIter)
|
||||
{
|
||||
cout<<"(by for_i ) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
|
||||
cout<<"(by for_ic ) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
|
||||
}
|
||||
__for_i_r(CStringList1, VO_ListOfStr11, VO_NowIter)
|
||||
{
|
||||
|
Reference in New Issue
Block a user