Compare commits
130 Commits
bf32afc1cd
...
bmain
Author | SHA1 | Date | |
---|---|---|---|
/* User with id == 0 is a fake user from git author */
|
5cd24d6e94 | ||
/* User with id == 0 is a fake user from git author */
|
3f4e40147b | ||
/* User with id == 0 is a fake user from git author */
|
f45137e8f3 | ||
/* User with id == 0 is a fake user from git author */
|
882e4f6278 | ||
/* User with id == 0 is a fake user from git author */
|
c30a14c0c9 | ||
/* User with id == 0 is a fake user from git author */
|
cd4ab32709 | ||
/* User with id == 0 is a fake user from git author */
|
1ffbb95e80 | ||
/* User with id == 0 is a fake user from git author */
|
56960ed38f | ||
/* User with id == 0 is a fake user from git author */
|
5e34c2f5cc | ||
/* User with id == 0 is a fake user from git author */
|
f451a6a1e1 | ||
/* User with id == 0 is a fake user from git author */
|
7ff1933fb0 | ||
/* User with id == 0 is a fake user from git author */
|
d360408365 | ||
/* User with id == 0 is a fake user from git author */
|
2f8fae30a4 | ||
/* User with id == 0 is a fake user from git author */
|
6d4556236e | ||
/* User with id == 0 is a fake user from git author */
|
d4614dcb09 | ||
/* User with id == 0 is a fake user from git author */
|
ad8e294902 | ||
/* User with id == 0 is a fake user from git author */
|
3e97046031 | ||
/* User with id == 0 is a fake user from git author */
|
f8b9887734 | ||
/* User with id == 0 is a fake user from git author */
|
de6056ab27 | ||
/* User with id == 0 is a fake user from git author */
|
8266f0a6a3 | ||
/* User with id == 0 is a fake user from git author */
|
af8fec15eb | ||
/* User with id == 0 is a fake user from git author */
|
756b48ae36 | ||
/* User with id == 0 is a fake user from git author */
|
b5f71d95d2 | ||
/* User with id == 0 is a fake user from git author */
|
ea178aa11a | ||
/* User with id == 0 is a fake user from git author */
|
64630b4abd | ||
/* User with id == 0 is a fake user from git author */
|
8eeafdd0d8 | ||
/* User with id == 0 is a fake user from git author */
|
9277c95336 | ||
/* User with id == 0 is a fake user from git author */
|
ec687cc4e9 | ||
/* User with id == 0 is a fake user from git author */
|
d21d5b0263 | ||
/* User with id == 0 is a fake user from git author */
|
e1b7aeed21 | ||
/* User with id == 0 is a fake user from git author */
|
0bae715de7 | ||
/* User with id == 0 is a fake user from git author */
|
849cab2dbb | ||
/* User with id == 0 is a fake user from git author */
|
4113a0a6f1 | ||
/* User with id == 0 is a fake user from git author */
|
e57cce5a28 | ||
/* User with id == 0 is a fake user from git author */
|
342dc34096 | ||
/* User with id == 0 is a fake user from git author */
|
1d3ee05571 | ||
/* User with id == 0 is a fake user from git author */
|
29aa6225b4 | ||
/* User with id == 0 is a fake user from git author */
|
31a6d46726 | ||
/* User with id == 0 is a fake user from git author */
|
bea5561dc4 | ||
/* User with id == 0 is a fake user from git author */
|
b92b3e2107 | ||
/* User with id == 0 is a fake user from git author */
|
c52ddbed83 | ||
/* User with id == 0 is a fake user from git author */
|
58a38e75ab | ||
/* User with id == 0 is a fake user from git author */
|
e7692ddfd1 | ||
/* User with id == 0 is a fake user from git author */
|
0e4ae40622 | ||
/* User with id == 0 is a fake user from git author */
|
9c746559f4 | ||
/* User with id == 0 is a fake user from git author */
|
536fec9db0 | ||
/* User with id == 0 is a fake user from git author */
|
16bfabc6fe | ||
/* User with id == 0 is a fake user from git author */
|
5e550363ee | ||
/* User with id == 0 is a fake user from git author */
|
fcb513d4ac | ||
/* User with id == 0 is a fake user from git author */
|
b4871d1b07 | ||
/* User with id == 0 is a fake user from git author */
|
5d337e3356 | ||
/* User with id == 0 is a fake user from git author */
|
40debb62a6 | ||
/* User with id == 0 is a fake user from git author */
|
70b7d85fac | ||
/* User with id == 0 is a fake user from git author */
|
c96244dd29 | ||
/* User with id == 0 is a fake user from git author */
|
6fe3bbff18 | ||
/* User with id == 0 is a fake user from git author */
|
a0438aebc6 | ||
/* User with id == 0 is a fake user from git author */
|
eb35ccb059 | ||
/* User with id == 0 is a fake user from git author */
|
84299e59a5 | ||
/* User with id == 0 is a fake user from git author */
|
8cc267707f | ||
/* User with id == 0 is a fake user from git author */
|
4838bb74ef | ||
/* User with id == 0 is a fake user from git author */
|
023e1d8a0a | ||
/* User with id == 0 is a fake user from git author */
|
1e88508936 | ||
/* User with id == 0 is a fake user from git author */
|
bf3aa88ec1 | ||
/* User with id == 0 is a fake user from git author */
|
908303d235 | ||
/* User with id == 0 is a fake user from git author */
|
82a2c15364 | ||
/* User with id == 0 is a fake user from git author */
|
2ce107ed19 | ||
/* User with id == 0 is a fake user from git author */
|
1f05458724 | ||
/* User with id == 0 is a fake user from git author */
|
d85191b2d0 | ||
/* User with id == 0 is a fake user from git author */
|
11acb59e39 | ||
/* User with id == 0 is a fake user from git author */
|
3c12d055a2 | ||
/* User with id == 0 is a fake user from git author */
|
3e8cbd319e | ||
/* User with id == 0 is a fake user from git author */
|
721d26ca5e | ||
/* User with id == 0 is a fake user from git author */
|
2b4596b065 | ||
/* User with id == 0 is a fake user from git author */
|
0fb0270a53 | ||
/* User with id == 0 is a fake user from git author */
|
4147ea51d6 | ||
/* User with id == 0 is a fake user from git author */
|
a1b89271b7 | ||
/* User with id == 0 is a fake user from git author */
|
4c6cde5d59 | ||
/* User with id == 0 is a fake user from git author */
|
2f364e66a3 | ||
/* User with id == 0 is a fake user from git author */
|
600ac6ef1e | ||
/* User with id == 0 is a fake user from git author */
|
aa59e460c5 | ||
/* User with id == 0 is a fake user from git author */
|
4a0a74936b | ||
/* User with id == 0 is a fake user from git author */
|
d47a651fd4 | ||
/* User with id == 0 is a fake user from git author */
|
40157d7df2 | ||
/* User with id == 0 is a fake user from git author */
|
dabd772aec | ||
/* User with id == 0 is a fake user from git author */
|
92a8cb501d | ||
/* User with id == 0 is a fake user from git author */
|
e9944b6e0c | ||
/* User with id == 0 is a fake user from git author */
|
5762ec1cdf | ||
/* User with id == 0 is a fake user from git author */
|
5c9c870654 | ||
/* User with id == 0 is a fake user from git author */
|
6a873ea2c9 | ||
/* User with id == 0 is a fake user from git author */
|
ef441cca37 | ||
/* User with id == 0 is a fake user from git author */
|
03556b203c | ||
/* User with id == 0 is a fake user from git author */
|
2aab937785 | ||
/* User with id == 0 is a fake user from git author */
|
3e37580b98 | ||
/* User with id == 0 is a fake user from git author */
|
b8d5ddb47f | ||
/* User with id == 0 is a fake user from git author */
|
a0d9d31a21 | ||
/* User with id == 0 is a fake user from git author */
|
1774cfda3a | ||
/* User with id == 0 is a fake user from git author */
|
b325c152fd | ||
/* User with id == 0 is a fake user from git author */
|
696b5744b1 | ||
/* User with id == 0 is a fake user from git author */
|
7cca0d4d92 | ||
/* User with id == 0 is a fake user from git author */
|
391adbaf11 | ||
/* User with id == 0 is a fake user from git author */
|
69fb7a8c5c | ||
/* User with id == 0 is a fake user from git author */
|
d66bdb4cea | ||
/* User with id == 0 is a fake user from git author */
|
a578e3b244 | ||
/* User with id == 0 is a fake user from git author */
|
2e0356fe09 | ||
/* User with id == 0 is a fake user from git author */
|
342446fdce | ||
/* User with id == 0 is a fake user from git author */
|
15d8ee63ad | ||
/* User with id == 0 is a fake user from git author */
|
d73d9e4227 | ||
/* User with id == 0 is a fake user from git author */
|
3b987e2a6e | ||
/* User with id == 0 is a fake user from git author */
|
131e638f8b | ||
/* User with id == 0 is a fake user from git author */
|
659b0a19cb | ||
/* User with id == 0 is a fake user from git author */
|
c8523687fc | ||
/* User with id == 0 is a fake user from git author */
|
65a115ff6f | ||
/* User with id == 0 is a fake user from git author */
|
4fc794e834 | ||
/* User with id == 0 is a fake user from git author */
|
15f24be62d | ||
/* User with id == 0 is a fake user from git author */
|
5166bbe7cf | ||
/* User with id == 0 is a fake user from git author */
|
7ba366e151 | ||
/* User with id == 0 is a fake user from git author */
|
5b692812db | ||
/* User with id == 0 is a fake user from git author */
|
b1958e065a | ||
/* User with id == 0 is a fake user from git author */
|
6cc8cff669 | ||
/* User with id == 0 is a fake user from git author */
|
0e25b260de | ||
/* User with id == 0 is a fake user from git author */
|
7a3b57f135 | ||
/* User with id == 0 is a fake user from git author */
|
388b87377a | ||
/* User with id == 0 is a fake user from git author */
|
093eb009d0 | ||
/* User with id == 0 is a fake user from git author */
|
18e0b5d9d4 | ||
/* User with id == 0 is a fake user from git author */
|
1bdcf7597b | ||
/* User with id == 0 is a fake user from git author */
|
bfe282e141 | ||
/* User with id == 0 is a fake user from git author */
|
bdc450d1b3 | ||
/* User with id == 0 is a fake user from git author */
|
bb547bd4f7 | ||
/* User with id == 0 is a fake user from git author */
|
e34ad6cfb1 | ||
/* User with id == 0 is a fake user from git author */
|
df8ffa6024 |
2799
ZCppMain/ZMainHead.H
2799
ZCppMain/ZMainHead.H
File diff suppressed because it is too large
Load Diff
@ -7136,7 +7136,6 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
return VI_EmptyBuffCnt;
|
return VI_EmptyBuffCnt;
|
||||||
}
|
}
|
||||||
////////////////
|
|
||||||
}
|
}
|
||||||
else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len)
|
else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len)
|
||||||
{
|
{
|
||||||
@ -7167,12 +7166,10 @@ namespace ZNsMain
|
|||||||
|
|
||||||
void MoveFirst()
|
void MoveFirst()
|
||||||
{
|
{
|
||||||
if(mi_HeadPos<1) return;
|
if(mi_HeadPos<1) return ;
|
||||||
|
|
||||||
int VI_Index=0 ;
|
int VI_Index= 0, i = mi_HeadPos;
|
||||||
int i =mi_HeadPos;
|
int VI_ValidBuffCnt = GetSize() ;
|
||||||
|
|
||||||
int VI_ValidBuffCnt=GetSize();
|
|
||||||
|
|
||||||
for(; i<=mi_TailPos; ++i)
|
for(; i<=mi_TailPos; ++i)
|
||||||
{
|
{
|
||||||
@ -7189,8 +7186,7 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
for(i=0; i<mi_HeadPos; ++i)*/
|
for(i=0; i<mi_HeadPos; ++i)*/
|
||||||
|
|
||||||
mi_HeadPos=0 ;
|
mi_HeadPos= 0 ; mi_TailPos= VI_ValidBuffCnt-1;
|
||||||
mi_TailPos=VI_ValidBuffCnt-1;
|
|
||||||
}/*
|
}/*
|
||||||
void MoveFirst()*/
|
void MoveFirst()*/
|
||||||
|
|
||||||
|
@ -17,90 +17,138 @@ namespace ZNsMain
|
|||||||
class ZtCArray //////////////////////////
|
class ZtCArray //////////////////////////
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef TType Type ;
|
typedef TType Type ;
|
||||||
typedef TType TypeData;
|
typedef TType TypeData ;
|
||||||
typedef TTypArg TypeArg ;
|
typedef TTypArg TypeArg ;
|
||||||
typedef TSize TypeSize;
|
typedef TSize TypeSize ;
|
||||||
public:
|
public:
|
||||||
class ZCDataPoint; class ZCDataPointC;
|
class ZCNodePoint; class ZCNodePointN ;
|
||||||
public:
|
public:
|
||||||
typedef Type* IterEasy;
|
typedef TypeData* IterEasy ;
|
||||||
typedef ZCDataPoint TypeIter;
|
typedef TypeData* TypeNode ; // ZCLinkPoint::GetNode() 의 반환형.
|
||||||
/**********************************************/
|
typedef ZCNodePoint TypeIter ;
|
||||||
|
typedef ZtCArray TypeThis ;
|
||||||
|
|
||||||
|
typedef const TypeThis TypeThisC ;
|
||||||
typedef const TypeData TypeDataC ;
|
typedef const TypeData TypeDataC ;
|
||||||
typedef const IterEasy IterEasyC ;
|
typedef const TypeData* TypeNodeC ; // ZCLinkPoint::GetNode() const 의 반환형.
|
||||||
|
typedef const TypeIter TypeIterC ;
|
||||||
|
typedef const TypeData* IterEasyC ;
|
||||||
|
|
||||||
/**********************************************/
|
/**********************************************/
|
||||||
typedef ZCDataPointC iteratorC ;
|
typedef const ZCNodePoint ZCNodePointC;
|
||||||
|
typedef const ZCNodePoint iteratorC ;
|
||||||
/**********************************************/
|
/**********************************************/
|
||||||
typedef ZCDataPoint iterator ;
|
typedef ZCNodePoint iterator ;
|
||||||
typedef ZCDataPointC const_iterator;
|
typedef ZCNodePointN const_iterator;
|
||||||
|
typedef ZCNodePointN iteratorN ;
|
||||||
|
typedef ZCNodePointN TypeIterN ;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
class ZCDataPoint
|
class ZCNodePoint
|
||||||
{
|
{
|
||||||
private: mutable
|
private:
|
||||||
|
ZtCArray& mr_CArray; mutable
|
||||||
TypeData* mp_Data ; mutable
|
TypeData* mp_Data ; mutable
|
||||||
TypeSize ml_ElePos; // *mp_Data 가 배열에서 차지하는 위치
|
TypeSize ml_ElePos; // *mp_Data 가 배열에서 차지하는 위치
|
||||||
ZtCArray& mr_CArray;
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
ZCDataPoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
static ZCNodePoint MakeTailPoint(ZtCArray & AR_CArray)
|
||||||
|
{
|
||||||
|
ZCNodePoint VO_ZCLinkPoint(AR_CArray);
|
||||||
|
|
||||||
|
if(AR_CArray.size()>0) /****************************/
|
||||||
|
{
|
||||||
|
VO_ZCLinkPoint.mp_Data = AR_CArray.mp_TypeArr+AR_CArray.size()-1 ;
|
||||||
|
VO_ZCLinkPoint.ml_ElePos = AR_CArray.size() ;
|
||||||
|
}
|
||||||
|
return VO_ZCLinkPoint; /****************************/
|
||||||
|
}/*
|
||||||
|
static ZCNodePoint MakeTailPoint(ZtCArray & AR_CArray)*/
|
||||||
|
static ZCNodePoint MakeTailPoint(TypeIterC& AR_TypeIter)
|
||||||
|
{
|
||||||
|
ZCNodePoint VO_ZCLinkPoint(AR_TypeIter);
|
||||||
|
|
||||||
|
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
|
||||||
|
|
||||||
|
if(VL_ArrSize>0) /**********************************/
|
||||||
|
{
|
||||||
|
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
|
||||||
|
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
|
||||||
|
}
|
||||||
|
return VO_ZCLinkPoint; /****************************/
|
||||||
|
}/*
|
||||||
|
static ZCNodePoint MakeTailPoint(TypeIterC& AR_TypeIter)*/
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
||||||
mr_CArray(AR_CArray)
|
mr_CArray(AR_CArray)
|
||||||
/*****************************************************************/
|
/*****************************************************************/
|
||||||
{
|
{
|
||||||
mp_Data =&AR_CData ;
|
mp_Data =&AR_CData ;
|
||||||
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_Data ;
|
||||||
ml_ElePos= (mr_CArray.size()>0 ? 1 : 0 );
|
ml_ElePos= (mr_CArray.size()>0 ? 1 : 0 );
|
||||||
}/*
|
}/*
|
||||||
ZCDataPoint(const ZCDataPoint& rhs)*/
|
ZCNodePoint(const ZCNodePoint& rhs)*/
|
||||||
|
|
||||||
TypeSize size () const{return mr_CArray.size();}
|
|
||||||
TypeSize GetPos() const{return ml_ElePos ;}
|
TypeThis & GetMain() {return mr_CArray ;}
|
||||||
|
TypeNode GetNode() {return mp_Data ;}
|
||||||
|
|
||||||
|
TypeThisC& GetMain() const{return mr_CArray ;}
|
||||||
|
TypeNodeC GetNode() const{return mp_Data ;}
|
||||||
|
|
||||||
|
TypeSize GetPos () const{return ml_ElePos ;}
|
||||||
|
TypeSize size () const{return mr_CArray.size();}
|
||||||
|
|
||||||
TypeData & operator* () {return *mp_Data;}
|
TypeData & operator* () {return *mp_Data;}
|
||||||
TypeData * operator->() {return mp_Data;}
|
TypeData * operator->() {return mp_Data;}
|
||||||
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;}
|
TypeIter & operator++( ) {++mp_Data; ++ml_ElePos; return *this;}
|
||||||
ZCDataPoint operator++(int){++mp_Data; ++ml_ElePos; return *this;}
|
TypeIter 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 ZCDataPoint& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
ZCNodePointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||||
const ZCDataPoint operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
ZCNodePointC 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;}
|
||||||
|
|
||||||
ZCDataPoint operator+(TSize AL_AddPos) const
|
TypeIter 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*/
|
TypeIter operator+(TSize AL_AddPos) const*/
|
||||||
|
|
||||||
|
|
||||||
bool operator == (const ZCDataPoint& rhs) const
|
bool operator == (ZCNodePointC& rhs) const
|
||||||
{ return ml_ElePos == rhs.ml_ElePos; }
|
{ return ml_ElePos == rhs.ml_ElePos; }
|
||||||
bool operator != (const ZCDataPoint& rhs) const
|
bool operator != (ZCNodePointC& rhs) const
|
||||||
{ return ml_ElePos != rhs.ml_ElePos; }
|
{ return ml_ElePos != rhs.ml_ElePos; }
|
||||||
bool operator > (const ZCDataPoint& rhs) const
|
bool operator > (ZCNodePointC& rhs) const
|
||||||
{ return ml_ElePos > rhs.ml_ElePos; }
|
{ return ml_ElePos > rhs.ml_ElePos; }
|
||||||
bool operator >= (const ZCDataPoint& rhs) const
|
bool operator >= (ZCNodePointC& rhs) const
|
||||||
{ return ml_ElePos >= rhs.ml_ElePos; }
|
{ return ml_ElePos >= rhs.ml_ElePos; }
|
||||||
bool operator < (const ZCDataPoint& rhs) const
|
bool operator < (ZCNodePointC& rhs) const
|
||||||
{ return ml_ElePos < rhs.ml_ElePos; }
|
{ return ml_ElePos < rhs.ml_ElePos; }
|
||||||
bool operator <= (const ZCDataPoint& rhs) const
|
bool operator <= (ZCNodePointC& 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
|
||||||
@ -118,10 +166,10 @@ namespace ZNsMain
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
class ZCDataPoint*/
|
class ZCNodePoint*/
|
||||||
|
|
||||||
|
|
||||||
class ZCDataPointC
|
class ZCNodePointN
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
mutable TypeData* mp_Data ;
|
mutable TypeData* mp_Data ;
|
||||||
@ -129,35 +177,77 @@ namespace ZNsMain
|
|||||||
const ZtCArray& mr_CArray;
|
const ZtCArray& mr_CArray;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
ZCDataPointC(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
static ZCNodePointN MakeTailPoint(ZtCArray & AR_CArray)
|
||||||
|
{
|
||||||
|
ZCNodePointN VO_ZCLinkPoint(AR_CArray);
|
||||||
|
|
||||||
|
if(AR_CArray.size()>0) /****************************/
|
||||||
|
{
|
||||||
|
VO_ZCLinkPoint.mp_Data = AR_CArray.mp_TypeArr+AR_CArray.size()-1 ;
|
||||||
|
VO_ZCLinkPoint.ml_ElePos = AR_CArray.size() ;
|
||||||
|
}
|
||||||
|
return VO_ZCLinkPoint; /****************************/
|
||||||
|
}/*
|
||||||
|
static ZCNodePointN MakeTailPoint(ZtCArray & AR_CArray)*/
|
||||||
|
static ZCNodePointN MakeTailPoint(TypeIterC& AR_TypeIter)
|
||||||
|
{
|
||||||
|
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
|
||||||
|
|
||||||
|
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
|
||||||
|
|
||||||
|
if(VL_ArrSize>0) /**********************************/
|
||||||
|
{
|
||||||
|
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
|
||||||
|
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
|
||||||
|
}
|
||||||
|
return VO_ZCLinkPoint; /****************************/
|
||||||
|
}/*
|
||||||
|
static ZCNodePointN MakeTailPoint(TypeIterC& AR_TypeIter)*/
|
||||||
|
static ZCNodePointN MakeTailPoint(TypeIterN& AR_TypeIter)
|
||||||
|
{
|
||||||
|
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
|
||||||
|
|
||||||
|
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
|
||||||
|
|
||||||
|
if(VL_ArrSize>0) /**********************************/
|
||||||
|
{
|
||||||
|
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
|
||||||
|
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
|
||||||
|
}
|
||||||
|
return VO_ZCLinkPoint; /****************************/
|
||||||
|
}/*
|
||||||
|
static ZCNodePointN MakeTailPoint(TypeIterN& AR_TypeIter)*/
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
ZCNodePointN(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
||||||
mr_CArray(AR_CArray)
|
mr_CArray(AR_CArray)
|
||||||
/*****************************************************************/
|
/*****************************************************************/
|
||||||
{
|
{
|
||||||
mp_Data =&AR_CData ;
|
mp_Data =&AR_CData ;
|
||||||
mr_CArray=&AR_CArray;
|
|
||||||
ml_ElePos=AL_ElePos ;
|
ml_ElePos=AL_ElePos ;
|
||||||
}/*
|
}/*
|
||||||
ZCDataPointC(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
|
ZCNodePointN(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
|
||||||
|
|
||||||
ZCDataPointC(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
|
ZCNodePointN(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
|
||||||
{
|
{
|
||||||
mp_Data = AR_CArray.mp_TypeArr ;
|
mp_Data = AR_CArray.mp_Data ;
|
||||||
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
|
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
|
||||||
}/*
|
}/*
|
||||||
ZCDataPointC(ZtCArray& AR_CArray)*/
|
ZCNodePointN(ZtCArray& AR_CArray)*/
|
||||||
|
|
||||||
ZCDataPointC(const ZCDataPointC& rhs) : mr_CArray(rhs.mr_CArray)
|
ZCNodePointN(const ZCNodePointN& rhs) : mr_CArray(rhs.mr_CArray)
|
||||||
{
|
{
|
||||||
mp_Data = rhs.mp_TypeArr ;
|
mp_Data = rhs.mp_Data ;
|
||||||
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
|
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
|
||||||
}/*
|
}/*
|
||||||
ZCDataPointC(const ZCDataPointC& rhs)*/
|
ZCNodePointN(const ZCNodePointN& rhs)*/
|
||||||
ZCDataPointC(const ZCDataPoint & rhs) : mr_CArray(rhs.mr_CArray)
|
ZCNodePointN(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
|
||||||
{
|
{
|
||||||
mp_Data = rhs.mp_TypeArr ;
|
mp_Data = rhs.mp_Data ;
|
||||||
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
|
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
|
||||||
}/*
|
}/*
|
||||||
ZCDataPointC(const ZCDataPoint & rhs)*/
|
ZCNodePointN(const ZCNodePoint & rhs)*/
|
||||||
|
|
||||||
|
|
||||||
TypeSize size () const{return mr_CArray.size();}
|
TypeSize size () const{return mr_CArray.size();}
|
||||||
@ -167,30 +257,27 @@ namespace ZNsMain
|
|||||||
TypeDataC* operator->() const{return mp_Data;}
|
TypeDataC* operator->() const{return mp_Data;}
|
||||||
|
|
||||||
|
|
||||||
ZCDataPointC& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
|
TypeIterN& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||||
ZCDataPointC operator++(int){++mp_Data; ++ml_ElePos; return *this;}
|
TypeIterN operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||||
|
|
||||||
const ZCDataPointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
TypeIterN operator+(TSize AL_AddPos) const
|
||||||
const ZCDataPointC operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
|
||||||
|
|
||||||
ZCDataPointC operator+(TSize AL_AddPos) const
|
|
||||||
{
|
{
|
||||||
return ZCDataPointC(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
return ZCNodePointN(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
||||||
}/*
|
}/*
|
||||||
ZCDataPointC operator+(TSize AL_AddPos) const*/
|
TypeIterN operator+(TSize AL_AddPos) const*/
|
||||||
|
|
||||||
|
|
||||||
bool operator == (const ZCDataPointC& rhs) const
|
bool operator == (const ZCNodePointN& rhs) const
|
||||||
{ return ml_ElePos == rhs.ml_ElePos; }
|
{ return ml_ElePos == rhs.ml_ElePos; }
|
||||||
bool operator != (const ZCDataPointC& rhs) const
|
bool operator != (const ZCNodePointN& rhs) const
|
||||||
{ return ml_ElePos != rhs.ml_ElePos; }
|
{ return ml_ElePos != rhs.ml_ElePos; }
|
||||||
bool operator > (const ZCDataPointC& rhs) const
|
bool operator > (const ZCNodePointN& rhs) const
|
||||||
{ return ml_ElePos > rhs.ml_ElePos; }
|
{ return ml_ElePos > rhs.ml_ElePos; }
|
||||||
bool operator >= (const ZCDataPointC& rhs) const
|
bool operator >= (const ZCNodePointN& rhs) const
|
||||||
{ return ml_ElePos >= rhs.ml_ElePos; }
|
{ return ml_ElePos >= rhs.ml_ElePos; }
|
||||||
bool operator < (const ZCDataPointC& rhs) const
|
bool operator < (const ZCNodePointN& rhs) const
|
||||||
{ return ml_ElePos < rhs.ml_ElePos; }
|
{ return ml_ElePos < rhs.ml_ElePos; }
|
||||||
bool operator <= (const ZCDataPointC& rhs) const
|
bool operator <= (const ZCNodePointN& 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
|
||||||
@ -208,7 +295,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
class ZCDataPointC*/
|
class ZCNodePointN*/
|
||||||
|
|
||||||
|
|
||||||
public :
|
public :
|
||||||
@ -455,11 +542,17 @@ namespace ZNsMain
|
|||||||
void push_front(TypeArg AR_TypeArg){AddHead(AR_TypeArg);}
|
void push_front(TypeArg AR_TypeArg){AddHead(AR_TypeArg);}
|
||||||
void push_back (TypeArg AR_TypeArg){AddTail(AR_TypeArg);}
|
void push_back (TypeArg AR_TypeArg){AddTail(AR_TypeArg);}
|
||||||
|
|
||||||
Type& push_front(){return AddHead();}
|
TypeData& push_front(){return AddHead();}
|
||||||
Type& push_back (){return AddTail();}
|
TypeData& push_back (){return AddTail();}
|
||||||
|
|
||||||
/***/ ZCDataPoint begin() {return ZCDataPoint(*this);}
|
TypeIter begin () {return ZCNodePoint (*this);}
|
||||||
const ZCDataPoint begin() const{return ZCDataPoint(*this);}
|
TypeIterN begin () const{return ZCNodePointN(*this);}
|
||||||
|
|
||||||
|
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
|
||||||
|
iteratorN end () const{ return ZCNodePointN::MakeTailPoint(*this); }
|
||||||
|
|
||||||
|
iteratorN cbegin() const{ return ZCNodePointN(*this); }
|
||||||
|
iteratorN cend () const{ return ZCNodePointN::MakeTailPoint(*this); }
|
||||||
|
|
||||||
|
|
||||||
template<typename TFunctor> void IterElement(TFunctor AO_Functor)
|
template<typename TFunctor> void IterElement(TFunctor AO_Functor)
|
||||||
@ -654,103 +747,97 @@ namespace ZNsMain
|
|||||||
|
|
||||||
-- 2011-06-12 20:42:00
|
-- 2011-06-12 20:42:00
|
||||||
|
|
||||||
|
GetDataInIter() 를 ItD() 로 대체. -- 2025-10-15 15:49
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////*/
|
///////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
Type* GetHeadIterEasy (){return mp_TypeArr ;}
|
TypeData * GetHeadIterEasy () {return mp_TypeArr ;}
|
||||||
Type* GetTailIterEasy (){return mp_TypeArr+ml_UseSize-1 ;}
|
TypeData * GetTailIterEasy () {return mp_TypeArr+ml_UseSize-1 ;}
|
||||||
IterEasyID GetHeadIterEasyID(){return (IterEasyID) mp_TypeArr ;}
|
IterEasyID GetHeadIterEasyID () {return (IterEasyID ) mp_TypeArr ;}
|
||||||
IterEasyID GetTailIterEasyID(){return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
IterEasyID GetTailIterEasyID () {return (IterEasyID )(mp_TypeArr+ml_UseSize-1);}
|
||||||
|
|
||||||
const Type* GetHeadIterEasy () const{return mp_TypeArr ;}
|
TypeDataC* GetHeadIterEasy () const{return mp_TypeArr ;}
|
||||||
const Type* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
|
TypeDataC* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||||
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID) mp_TypeArr ;}
|
IterEasyIDc GetHeadIterEasyID () const{return (IterEasyIDc) mp_TypeArr ;}
|
||||||
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
IterEasyIDc GetTailIterEasyID () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
|
||||||
|
|
||||||
void MoveNextIter(Type*& APR_CType ) const{++APR_CType ;}
|
IterEasyIDc GetHeadIterEasyIDc() const{return (IterEasyIDc) mp_TypeArr ;}
|
||||||
void MoveNextIter(iterator& ARR_CIterator) const{++ARR_CIterator;}
|
IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
|
||||||
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 MovePrevIter(Type*& APR_CType ) const{--APR_CType ;}
|
void MoveNextIter(TypeData* & APR_CType ) const{++APR_CType ;}
|
||||||
void MovePrevIter(iterator& ARR_CIterator) const{--ARR_CIterator;}
|
void MoveNextIter(iterator & ARR_CIterator) const{++ARR_CIterator;}
|
||||||
void MovePrevIter(IterEasyID& AI_IterEasyID) const
|
void MoveNextIter(IterEasyID & AI_IterEasyID) const
|
||||||
{ MovePrevIter((Type*&)AI_IterEasyID); }
|
{ MoveNextIter((TypeData *&)AI_IterEasyID); }
|
||||||
void MovePrevIter(const Type*& APR_CType ) const{--APR_CType ;}
|
void MoveNextIter(TypeDataC* & APR_CType ) const{++APR_CType ;}
|
||||||
void MovePrevIter(const iterator& ARR_CIterator) const{--ARR_CIterator;}
|
void MoveNextIter(iteratorC & ARR_CIterator) const{++ARR_CIterator;}
|
||||||
void MovePrevIter(const IterEasyID& AI_IterEasyID)
|
void MoveNextIter(IterEasyIDc& AI_IterEasyID) const
|
||||||
const{ MovePrevIter((const Type*&)AI_IterEasyID); }
|
{ MoveNextIter((TypeDataC*&)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 ;}
|
TypeData * ItHEasy() {return mp_TypeArr ;}
|
||||||
Type& GetDataInIter(iterator& ARR_CIterator){return *ARR_CIterator ;}
|
TypeData * ItTEasy() {return mp_TypeArr+ml_UseSize-1 ;}
|
||||||
Type& GetDataInIter(IterEasyID AI_IterEasyID){return *(Type*)AI_IterEasyID;}
|
IterEasyID ItHID () {return (IterEasyID ) mp_TypeArr ;}
|
||||||
|
IterEasyID ItTID () {return (IterEasyID )(mp_TypeArr+ml_UseSize-1);}
|
||||||
|
|
||||||
const Type& GetDataInIter(const Type* AP_CType ) const{return *AP_CType;}
|
TypeDataC* ItHEasy() const{return mp_TypeArr ;}
|
||||||
const Type& GetDataInIter(const iterator& ARR_CIterator) const{return *ARR_CIterator;}
|
TypeDataC* ItTEasy() const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||||
const Type& GetDataInIter(const IterEasyID AI_IterEasyID) const
|
IterEasyIDc ItHID () const{return (IterEasyIDc) mp_TypeArr ;}
|
||||||
{ return *(const Type*)AI_IterEasyID; }
|
IterEasyIDc ItTID () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
|
||||||
|
|
||||||
|
IterEasyIDc ItHIDc () const{return (IterEasyIDc) mp_TypeArr ;}
|
||||||
|
IterEasyIDc ItTIDc () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
|
||||||
|
|
||||||
|
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(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); }
|
||||||
|
|
||||||
|
TypeData& ItD(TypeData * AP_CType ) {return *AP_CType ;}
|
||||||
|
TypeData& ItD(iterator & ARR_CIterator) {return *ARR_CIterator;}
|
||||||
|
TypeData& ItD(IterEasyID AI_IterEasyID)
|
||||||
|
{ return *(TypeData *)AI_IterEasyID; }
|
||||||
|
|
||||||
|
TypeDataC& ItD(TypeDataC * AP_CType ) const{return *AP_CType;}
|
||||||
|
TypeDataC& ItD(iteratorC & ARR_CIterator) const{return *ARR_CIterator;}
|
||||||
|
TypeDataC& ItD(IterEasyIDc AI_IterEasyID) const
|
||||||
|
{ return *(TypeDataC*)AI_IterEasyID; }
|
||||||
|
|
||||||
|
|
||||||
Type& GetDataInIter(Type* AP_Type , TypeSize AI_FarNum)
|
TypeData & ItD(TypeData * AP_Type , TypeSize AI_FarNum)
|
||||||
{ return *(AP_Type + AI_FarNum) ; }
|
{ return *(AP_Type + AI_FarNum) ; }
|
||||||
Type& GetDataInIter(iterator& ARR_CIterator , TypeSize AI_FarNum)
|
TypeData & ItD(iterator & ARR_CIterator , TypeSize AI_FarNum)
|
||||||
{ return *(ARR_CIterator+AI_FarNum) ; }
|
{ return *(ARR_CIterator+AI_FarNum) ; }
|
||||||
Type& GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
|
TypeData & ItD(IterEasyID AH_IterEasyID , TypeSize AI_FarNum)
|
||||||
{ return GetDataInIter((Type*)ARRI_IterEasyID, AI_FarNum); }
|
{ return ItD((TypeData*)AH_IterEasyID , AI_FarNum); }
|
||||||
|
|
||||||
const Type& GetDataInIter(const Type* AP_Type , TypeSize AI_FarNum) const
|
TypeDataC& ItD(TypeDataC * AP_Type , TypeSize AI_FarNum) const
|
||||||
{ return *(AP_Type + AI_FarNum); }
|
{ return *(AP_Type + AI_FarNum); }
|
||||||
const Type& GetDataInIter(iterator& ARR_CIterator, TypeSize AI_FarNum) const
|
TypeDataC& ItD(iterator & ARR_CIterator , TypeSize AI_FarNum) const
|
||||||
{ return *(ARR_CIterator+AI_FarNum); }
|
{ return *(ARR_CIterator+AI_FarNum); }
|
||||||
const Type& GetDataInIter(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const
|
TypeDataC& ItD(IterEasyIDc AH_IterEasyID , TypeSize AI_FarNum) const
|
||||||
{ return GetDataInIter((const Type*)ARRI_IterEasyID, AI_FarNum); }
|
{ return ItD((TypeDataC*)AH_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);}
|
|
||||||
|
|
||||||
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);}
|
|
||||||
|
|
||||||
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 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); }
|
|
||||||
|
|
||||||
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);}
|
|
||||||
|
|
||||||
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);}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -767,16 +767,40 @@ namespace ZNsMain
|
|||||||
class ZtCSimList /*##########################################################*/
|
class ZtCSimList /*##########################################################*/
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef TType Type ;
|
class ZCLink ;
|
||||||
typedef TType TypeData ;
|
class ZCNodePoint ;
|
||||||
typedef TTypArgu TypeArg ;
|
class ZNodekPointN;
|
||||||
typedef TTypCAlloc TypeAlloc ;
|
/**************************************************/
|
||||||
typedef TTypCInit TypeInit ;
|
typedef TType Type ;
|
||||||
typedef TTypSize TypeSize ;
|
typedef TType TypeData ;
|
||||||
typedef TMoveObj TypeMoveObj;
|
typedef TTypArgu TypeArg ;
|
||||||
public:
|
typedef TTypCAlloc TypeAlloc ;
|
||||||
|
typedef TTypCInit TypeInit ;
|
||||||
|
typedef TTypSize TypeSize ;
|
||||||
|
typedef TMoveObj TypeMoveObj ;
|
||||||
|
|
||||||
|
typedef ZCLink TypeLink ;
|
||||||
|
typedef ZCLink TypeNode ;
|
||||||
|
typedef ZtCSimList TypeList ;
|
||||||
|
typedef ZtCSimList TypeThis ;
|
||||||
|
typedef ZCNodePoint TypeIter ;
|
||||||
|
/**************************************************/
|
||||||
|
typedef const ZCLink ZCLinkC ;
|
||||||
|
|
||||||
|
typedef const TypeThis TypeThisC ;
|
||||||
|
typedef const TypeData TypeDataC ;
|
||||||
|
typedef const TypeList TypeListC ;
|
||||||
|
typedef const TypeLink TypeLinkC ;
|
||||||
|
typedef const TypeNode TypeNodeC ;
|
||||||
|
typedef const TypeIter TypeIterC ;
|
||||||
|
/**************************************************/
|
||||||
|
typedef ZCNodePoint iterator ;
|
||||||
|
typedef ZNodekPointN const_iterator ;
|
||||||
|
typedef ZNodekPointN iteratorN ;
|
||||||
|
/**************************************************/
|
||||||
typedef typename TFeeeHeap::
|
typedef typename TFeeeHeap::
|
||||||
template ZtCBody<ZtCSimList> ZCFreeHeap;
|
template ZtCBody<ZtCSimList> ZCFreeHeap;
|
||||||
|
/**************************************************/
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
@ -859,17 +883,17 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
const TType& GetData() const*/
|
const TType& GetData() const*/
|
||||||
|
|
||||||
TType& GetData(TTypSize AL_FarNum) // must AL_FarNum >= 0
|
TType& GetData(TypeSize AL_FarNum) // must AL_FarNum >= 0
|
||||||
{
|
{
|
||||||
return GetNextPtr(AL_FarNum)->mo_DataObjt;
|
return GetNextPtr(AL_FarNum)->mo_DataObjt;
|
||||||
}/*
|
}/*
|
||||||
TType& GetData(TTypSize AL_FarNum)*/
|
TType& GetData(TypeSize AL_FarNum)*/
|
||||||
|
|
||||||
const TType& GetData(TTypSize AL_FarNum) const
|
const TType& GetData(TypeSize AL_FarNum) const
|
||||||
{
|
{
|
||||||
return GetNextPtr(AL_FarNum)->mo_DataObjt;
|
return GetNextPtr(AL_FarNum)->mo_DataObjt;
|
||||||
}/*
|
}/*
|
||||||
const TType& GetData(TTypSize AL_FarNum) const*/
|
const TType& GetData(TypeSize AL_FarNum) const*/
|
||||||
|
|
||||||
|
|
||||||
TType& operator* (){return mo_DataObjt;}
|
TType& operator* (){return mo_DataObjt;}
|
||||||
@ -879,9 +903,9 @@ namespace ZNsMain
|
|||||||
const TType& operator()() const{return mo_DataObjt;}
|
const TType& operator()() const{return mo_DataObjt;}
|
||||||
|
|
||||||
|
|
||||||
ZCLink* GetNextPtr(TTypSize AL_FarNum) // must AL_FarNum > 0
|
ZCLink* GetNextPtr(TypeSize AL_FarNum) // must AL_FarNum > 0
|
||||||
{
|
{
|
||||||
// 이 멤버 함수는 TTypSize 가 용랑이 큰 object 라 할지라도
|
// 이 멤버 함수는 TypeSize 가 용랑이 큰 object 라 할지라도
|
||||||
// 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다.
|
// 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다.
|
||||||
|
|
||||||
ZCLink* VP_TmpLink=this;
|
ZCLink* VP_TmpLink=this;
|
||||||
@ -892,13 +916,13 @@ namespace ZNsMain
|
|||||||
|
|
||||||
return VP_TmpLink;
|
return VP_TmpLink;
|
||||||
}/*
|
}/*
|
||||||
ZCLink* GetNextPtr(TTypSize AL_FarNum)*/
|
ZCLink* GetNextPtr(TypeSize AL_FarNum)*/
|
||||||
|
|
||||||
|
|
||||||
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TTypSize AL_FarNum) const
|
ZCLinkC* const GetNextPtr(TypeSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TypeSize AL_FarNum) const
|
||||||
{
|
{
|
||||||
// TTypSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
|
// TypeSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
|
||||||
// TTypSize 을 참조로 받으면 안된다.
|
// TypeSize 을 참조로 받으면 안된다.
|
||||||
|
|
||||||
ZCLink* VP_TmpLink = const_cast<ZCLink*>(this);
|
ZCLink* VP_TmpLink = const_cast<ZCLink*>(this);
|
||||||
|
|
||||||
@ -912,20 +936,11 @@ namespace ZNsMain
|
|||||||
|
|
||||||
return VP_TmpLink;
|
return VP_TmpLink;
|
||||||
}/*
|
}/*
|
||||||
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const*/
|
ZCLinkC* const GetNextPtr(TypeSize AL_FarNum) const*/
|
||||||
|
|
||||||
|
|
||||||
inline ZCLink* GetNextPtr()
|
inline ZCLink * GetNextPtr() { return mp_NextLink; }
|
||||||
{
|
inline ZCLinkC* const GetNextPtr() const{ return mp_NextLink; }
|
||||||
return mp_NextLink;
|
|
||||||
}/*
|
|
||||||
inline ZCLink* GetNextPtr()*/
|
|
||||||
|
|
||||||
inline const ZCLink* const GetNextPtr() const
|
|
||||||
{
|
|
||||||
return mp_NextLink;
|
|
||||||
}/*
|
|
||||||
inline const ZCLink* const GetNextPtr() const*/
|
|
||||||
|
|
||||||
ZCLink& operator=(TypeArg AR_Type)
|
ZCLink& operator=(TypeArg AR_Type)
|
||||||
{
|
{
|
||||||
@ -933,36 +948,301 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
ZCLink& operator=(TypeArg AR_Type)*/
|
ZCLink& operator=(TypeArg AR_Type)*/
|
||||||
|
|
||||||
ZCLink* operator+(TypeSize AL_Offset)
|
ZCLink& operator+(TypeSize AL_Offset)
|
||||||
{
|
{
|
||||||
ZCLink* VP_CLinkLoop=this;
|
ZCLink* VP_CLinkLoop=this;
|
||||||
|
|
||||||
__for0(TTypSize, i, AL_Offset)
|
__for0(TypeSize, i, AL_Offset)
|
||||||
{
|
{
|
||||||
VP_CLinkLoop = VP_CLinkLoop->mp_NextLink;
|
VP_CLinkLoop = VP_CLinkLoop->mp_NextLink;
|
||||||
}/*
|
}/*
|
||||||
__for0(TTypSize, i, AL_Offset)*/
|
__for0(TypeSize, i, AL_Offset)*/
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}/*
|
}/*
|
||||||
ZCLink* operator+(TypeSize AL_Offset)
|
ZCLink& operator+(TypeSize AL_Offset)
|
||||||
|
|
||||||
public:*/
|
public:*/
|
||||||
};/*
|
};/*
|
||||||
class ZCLink*/
|
class ZCLink*/
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
class ZCNodePoint
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
/*****/ TypeList& mr_CurrList;
|
||||||
|
mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0
|
||||||
|
mutable TypeSize ml_CurrPos ;
|
||||||
|
public:
|
||||||
|
ZCNodePoint(TypeList& AR_TypeList) :
|
||||||
|
mr_CurrList(AR_TypeList)
|
||||||
|
{
|
||||||
|
mp_CurrLink = AR_TypeList.HeadPtr();
|
||||||
|
ml_CurrPos = 1 ;
|
||||||
|
}
|
||||||
|
ZCNodePoint(const ZCNodePoint& rhs) :
|
||||||
|
mr_CurrList(rhs.mr_CurrList),
|
||||||
|
mp_CurrLink(rhs.mp_CurrLink),
|
||||||
|
ml_CurrPos (rhs.ml_CurrPos )
|
||||||
|
{}
|
||||||
|
public :
|
||||||
|
|
||||||
/*************** end class ZCLink ***************/
|
static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)
|
||||||
|
{
|
||||||
|
ZCNodePoint VO_ZCLinkPoint(AR_TypeList);
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
|
||||||
|
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
|
||||||
|
|
||||||
|
return VO_ZCLinkPoint; /****************************/
|
||||||
|
}/*
|
||||||
|
static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)*/
|
||||||
|
static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)
|
||||||
|
{
|
||||||
|
ZCNodePoint 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 ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)*/
|
||||||
|
|
||||||
|
public :
|
||||||
|
|
||||||
|
TypeThis & GetMain() {return mr_CurrList;}
|
||||||
|
TypeNode & GetNode() {return *mp_CurrLink;}
|
||||||
|
|
||||||
|
TypeThisC& GetMain() const{return mr_CurrList;}
|
||||||
|
TypeNodeC& GetNode() const{return *mp_CurrLink;}
|
||||||
|
/***************************************************/
|
||||||
|
TypeSize GetPos () const{return ml_CurrPos ;}
|
||||||
|
/***************************************************/
|
||||||
|
|
||||||
|
|
||||||
//public :
|
bool IsValid() const{return mr_CurrList.size()>0;}
|
||||||
|
bool IsEmpty() const{return mr_CurrList.size()<1;}
|
||||||
|
|
||||||
|
|
||||||
|
ZCNodePoint& operator= (const ZCNodePoint& rhs){ return *this; }
|
||||||
|
|
||||||
|
|
||||||
|
TypeData & operator*() {return **mp_CurrLink;}
|
||||||
|
TypeDataC& operator*() const{return **mp_CurrLink;}
|
||||||
|
|
||||||
|
operator TypeLink * () {return mp_CurrLink;}
|
||||||
|
operator TypeLinkC* () const{return mp_CurrLink;}
|
||||||
|
|
||||||
|
operator TypeLink & () {return *mp_CurrLink;}
|
||||||
|
operator TypeLinkC& () const{return *mp_CurrLink;}
|
||||||
|
|
||||||
|
|
||||||
|
bool operator == (const ZCNodePoint& rhs) const
|
||||||
|
{ return ml_CurrPos == rhs.ml_CurrPos; }
|
||||||
|
bool operator != (const ZCNodePoint& rhs) const
|
||||||
|
{ return ml_CurrPos != rhs.ml_CurrPos; }
|
||||||
|
bool operator > (const ZCNodePoint& rhs) const
|
||||||
|
{ return ml_CurrPos > rhs.ml_CurrPos; }
|
||||||
|
bool operator >= (const ZCNodePoint& rhs) const
|
||||||
|
{ return ml_CurrPos >= rhs.ml_CurrPos; }
|
||||||
|
bool operator < (const ZCNodePoint& rhs) const
|
||||||
|
{ return ml_CurrPos < rhs.ml_CurrPos; }
|
||||||
|
bool operator <= (const ZCNodePoint& rhs) const
|
||||||
|
{ return ml_CurrPos <= rhs.ml_CurrPos; }
|
||||||
|
|
||||||
|
bool operator == (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos == AL_Size; }
|
||||||
|
bool operator != (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos != AL_Size; }
|
||||||
|
bool operator > (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos > AL_Size; }
|
||||||
|
bool operator >= (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos >= AL_Size; }
|
||||||
|
bool operator < (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos < AL_Size; }
|
||||||
|
bool operator <= (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos <= AL_Size; }
|
||||||
|
|
||||||
|
|
||||||
|
const ZCNodePoint& operator++() const
|
||||||
|
{
|
||||||
|
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||||
|
|
||||||
|
++ml_CurrPos; return *this ;
|
||||||
|
}/*
|
||||||
|
const ZCNodePoint& operator++() const*/
|
||||||
|
|
||||||
|
ZCNodePoint operator++(int) const
|
||||||
|
{
|
||||||
|
ZCNodePoint VO_NowPoint(*this);
|
||||||
|
|
||||||
|
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||||
|
|
||||||
|
++ml_CurrPos ; return VO_NowPoint ;
|
||||||
|
}/*
|
||||||
|
ZCNodePoint operator++(int) const*/
|
||||||
|
|
||||||
|
|
||||||
|
const ZCNodePoint& operator+=(TypeSize AL_Distance) const
|
||||||
|
{
|
||||||
|
if(IsEmpty()){return *this;}
|
||||||
|
|
||||||
|
mp_CurrLink = &((*mp_CurrLink)+AL_Distance) ;
|
||||||
|
ml_CurrPos += AL_Distance ;
|
||||||
|
|
||||||
|
return *this; /*:::::::::::::::::::::::::::*/
|
||||||
|
}/*
|
||||||
|
const ZCNodePoint& operator+=(TypeSize AL_Distance) const*/
|
||||||
|
|
||||||
|
public:
|
||||||
|
};/*
|
||||||
|
class ZCNodePoint*/
|
||||||
|
|
||||||
|
|
||||||
|
class ZNodekPointN
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
const TypeList& mr_CurrList;
|
||||||
|
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
|
||||||
|
mutable TypeSize ml_CurrPos ;
|
||||||
|
public :
|
||||||
|
ZNodekPointN(const TypeList& AR_TypeList) :
|
||||||
|
mr_CurrList(AR_TypeList)
|
||||||
|
{
|
||||||
|
mp_CurrLink = AR_TypeList.HeadPtr();
|
||||||
|
ml_CurrPos = 1 ;
|
||||||
|
}
|
||||||
|
ZNodekPointN(const ZCNodePoint & rhs) :
|
||||||
|
mr_CurrList( rhs.GetMain()),
|
||||||
|
mp_CurrLink(&rhs.GetNode()),
|
||||||
|
ml_CurrPos ( rhs.GetPos ())
|
||||||
|
{}
|
||||||
|
ZNodekPointN(const ZNodekPointN& rhs) :
|
||||||
|
mr_CurrList(rhs.mr_CurrList),
|
||||||
|
mp_CurrLink(rhs.mp_CurrLink),
|
||||||
|
ml_CurrPos (rhs.ml_CurrPos )
|
||||||
|
{}
|
||||||
|
public :
|
||||||
|
|
||||||
|
static ZNodekPointN MakeTailPoint(const TypeList& 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 ZNodekPointN MakeTailPoint(const TypeList& AR_TypeList)*/
|
||||||
|
static ZNodekPointN MakeTailPoint(const ZCNodePoint& 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 ZNodekPointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
|
||||||
|
static ZNodekPointN MakeTailPoint(const ZNodekPointN& 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 ZNodekPointN MakeTailPoint(const ZNodekPointN& AR_TypeIter)*/
|
||||||
|
|
||||||
|
public :
|
||||||
|
|
||||||
|
TypeListC& GetMain() const{return mr_CurrList;}
|
||||||
|
TypeLinkC& GetNode() const{return *mp_CurrLink;}
|
||||||
|
/***************************************************/
|
||||||
|
TypeSize GetPos () const{return ml_CurrPos ;}
|
||||||
|
/***************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
bool IsValid() const{return mr_CurrList.size()>0;}
|
||||||
|
bool IsEmpty() const{return mr_CurrList.size()<1;}
|
||||||
|
|
||||||
|
|
||||||
|
ZNodekPointN& operator= (const ZNodekPointN& rhs){ return *this; }
|
||||||
|
|
||||||
|
|
||||||
|
TypeDataC& operator*() const{return **mp_CurrLink;}
|
||||||
|
operator TypeLinkC* () const{return mp_CurrLink;}
|
||||||
|
operator TypeLinkC& () const{return *mp_CurrLink;}
|
||||||
|
|
||||||
|
|
||||||
|
bool operator == (const ZNodekPointN& rhs) const
|
||||||
|
{ return ml_CurrPos == rhs.ml_CurrPos; }
|
||||||
|
bool operator != (const ZNodekPointN& rhs) const
|
||||||
|
{ return ml_CurrPos != rhs.ml_CurrPos; }
|
||||||
|
bool operator > (const ZNodekPointN& rhs) const
|
||||||
|
{ return ml_CurrPos > rhs.ml_CurrPos; }
|
||||||
|
bool operator >= (const ZNodekPointN& rhs) const
|
||||||
|
{ return ml_CurrPos >= rhs.ml_CurrPos; }
|
||||||
|
bool operator < (const ZNodekPointN& rhs) const
|
||||||
|
{ return ml_CurrPos < rhs.ml_CurrPos; }
|
||||||
|
bool operator <= (const ZNodekPointN& rhs) const
|
||||||
|
{ return ml_CurrPos <= rhs.ml_CurrPos; }
|
||||||
|
|
||||||
|
bool operator == (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos == AL_Size; }
|
||||||
|
bool operator != (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos != AL_Size; }
|
||||||
|
bool operator > (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos > AL_Size; }
|
||||||
|
bool operator >= (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos >= AL_Size; }
|
||||||
|
bool operator < (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos < AL_Size; }
|
||||||
|
bool operator <= (TypeSize AL_Size) const
|
||||||
|
{ return ml_CurrPos <= AL_Size; }
|
||||||
|
|
||||||
|
|
||||||
|
const ZNodekPointN& operator++() const
|
||||||
|
{
|
||||||
|
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||||
|
|
||||||
|
++ml_CurrPos; return *this ;
|
||||||
|
}/*
|
||||||
|
const ZNodekPointN& operator++() const*/
|
||||||
|
|
||||||
|
ZNodekPointN operator++(int) const
|
||||||
|
{
|
||||||
|
ZNodekPointN VO_NowPoint(*this);
|
||||||
|
|
||||||
|
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||||
|
|
||||||
|
++ml_CurrPos ; return VO_NowPoint ;
|
||||||
|
}/*
|
||||||
|
ZNodekPointN operator++(int) const*/
|
||||||
|
|
||||||
|
|
||||||
|
const ZNodekPointN& operator+=(TypeSize AL_Distance) const
|
||||||
|
{
|
||||||
|
if(IsEmpty()){return *this;}
|
||||||
|
|
||||||
|
mp_CurrLink = &((*mp_CurrLink)+AL_Distance) ;
|
||||||
|
ml_CurrPos += AL_Distance ;
|
||||||
|
|
||||||
|
return *this; /*:::::::::::::::::::::::::::*/
|
||||||
|
}/*
|
||||||
|
const ZNodekPointN& operator+=(TypeSize AL_Distance) const*/
|
||||||
|
|
||||||
|
public:
|
||||||
|
};/*
|
||||||
|
class ZNodekPointN*/
|
||||||
|
|
||||||
|
|
||||||
|
public :
|
||||||
|
/*************************************************************/
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
TTypSize ml_LinkSize ;
|
TypeSize ml_LinkSize ;
|
||||||
ZCLink* mp_HeadLink ;
|
ZCLink* mp_HeadLink ;
|
||||||
ZCLink* mp_TailLink ; mutable
|
ZCLink* mp_TailLink ; mutable
|
||||||
ZCFreeHeap mo_FreeObjt ;
|
ZCFreeHeap mo_FreeObjt ;
|
||||||
@ -973,9 +1253,9 @@ namespace ZNsMain
|
|||||||
|
|
||||||
ZtCSimList& CopyLink /*######################################*/
|
ZtCSimList& CopyLink /*######################################*/
|
||||||
(
|
(
|
||||||
const ZCLink* const AP_CopyLink ,
|
ZCLinkC* AP_CopyLink ,
|
||||||
TTypSize AL_FarNum ,
|
TypeSize AL_FarNum ,
|
||||||
ZtCSimList& ARR_Rhs
|
ZtCSimList& ARR_Rhs
|
||||||
) const
|
) const
|
||||||
/*###########################################################*/
|
/*###########################################################*/
|
||||||
{
|
{
|
||||||
@ -1006,9 +1286,9 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
ZtCSimList& CopyLink ##########################################
|
ZtCSimList& CopyLink ##########################################
|
||||||
(
|
(
|
||||||
const ZCLink* const AP_CopyLink ,
|
ZCLinkC* AP_CopyLink ,
|
||||||
TTypSize AL_FarNum ,
|
TypeSize AL_FarNum ,
|
||||||
ZtCSimList& ARR_Rhs
|
ZtCSimList& ARR_Rhs
|
||||||
) const
|
) const
|
||||||
#############################################################*/
|
#############################################################*/
|
||||||
|
|
||||||
@ -1050,7 +1330,7 @@ namespace ZNsMain
|
|||||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
|
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
|
||||||
|
|
||||||
|
|
||||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)
|
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)
|
||||||
{
|
{
|
||||||
if(AP_CutLink==mp_HeadLink)
|
if(AP_CutLink==mp_HeadLink)
|
||||||
{
|
{
|
||||||
@ -1081,14 +1361,14 @@ namespace ZNsMain
|
|||||||
|
|
||||||
return (--ml_LinkSize, AP_CutLink);
|
return (--ml_LinkSize, AP_CutLink);
|
||||||
}/*
|
}/*
|
||||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)*/
|
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)*/
|
||||||
|
|
||||||
|
|
||||||
ZtCSimList& CutLink /*###############################*/
|
ZtCSimList& CutLink /*###############################*/
|
||||||
(
|
(
|
||||||
ZCLink* AP_CutHeadPrev,
|
ZCLink* AP_CutHeadPrev,
|
||||||
ZCLink* AP_CutHead , TTypSize AL_CutHeadPos,
|
ZCLink* AP_CutHead , TypeSize AL_CutHeadPos,
|
||||||
ZCLink* AP_CutTail , TTypSize AL_CutTailPos,
|
ZCLink* AP_CutTail , TypeSize AL_CutTailPos,
|
||||||
ZtCSimList& ARR_StoreList
|
ZtCSimList& ARR_StoreList
|
||||||
)
|
)
|
||||||
/*###################################################*/
|
/*###################################################*/
|
||||||
@ -1135,8 +1415,8 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||||
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,"<<std::endl;
|
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,"<<std::endl;
|
||||||
fileout<<" ZCLink* AP_CutTail, TTypSize AL_CutTailPos" <<std::endl;
|
fileout<<" ZCLink* AP_CutTail, TypeSize AL_CutTailPos" <<std::endl;
|
||||||
fileout<<" /****************/ )" <<std::endl;
|
fileout<<" /****************/ )" <<std::endl;
|
||||||
fileout<<"Static Object ARR_StoreList is not empty"<<std::endl;
|
fileout<<"Static Object ARR_StoreList is not empty"<<std::endl;
|
||||||
fileout.close();
|
fileout.close();
|
||||||
@ -1155,14 +1435,14 @@ namespace ZNsMain
|
|||||||
ZtCSimList& CutLink ///////////////////////////////
|
ZtCSimList& CutLink ///////////////////////////////
|
||||||
(
|
(
|
||||||
ZCLink* AP_CutHeadPrev,
|
ZCLink* AP_CutHeadPrev,
|
||||||
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
|
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
|
||||||
ZCLink* AP_CutTail, TTypSize AL_CutTailPos,
|
ZCLink* AP_CutTail, TypeSize AL_CutTailPos,
|
||||||
ZtCSimList& ARR_StoreList
|
ZtCSimList& ARR_StoreList
|
||||||
)
|
)
|
||||||
/////////////////////////////////////////////////*/
|
/////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
||||||
{
|
{
|
||||||
if(AL_DefaultSize<=0) return ARR_StoreList;
|
if(AL_DefaultSize<=0) return ARR_StoreList;
|
||||||
|
|
||||||
@ -1179,7 +1459,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
return ARR_StoreList;
|
return ARR_StoreList;
|
||||||
}/*
|
}/*
|
||||||
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
||||||
|
|
||||||
|
|
||||||
protected: */
|
protected: */
|
||||||
@ -1242,17 +1522,17 @@ namespace ZNsMain
|
|||||||
ZtCSimList& operator()(TypeArg AR_Type)*/
|
ZtCSimList& operator()(TypeArg AR_Type)*/
|
||||||
|
|
||||||
|
|
||||||
TType& operator[](TTypSize AL_Index)
|
TType& operator[](TypeSize AL_Index)
|
||||||
{
|
{
|
||||||
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
||||||
}/*
|
}/*
|
||||||
TType& operator[](TTypSize AL_Index)*/
|
TType& operator[](TypeSize AL_Index)*/
|
||||||
|
|
||||||
const TType& operator[](TTypSize AL_Index) const
|
const TType& operator[](TypeSize AL_Index) const
|
||||||
{
|
{
|
||||||
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
||||||
}/*
|
}/*
|
||||||
const TType& operator[](TTypSize AL_Index) const*/
|
const TType& operator[](TypeSize AL_Index) const*/
|
||||||
|
|
||||||
|
|
||||||
operator TType&(){return AddTailDef()->mo_DataObjt;}
|
operator TType&(){return AddTailDef()->mo_DataObjt;}
|
||||||
@ -1366,7 +1646,7 @@ namespace ZNsMain
|
|||||||
ZCLink* AddTailDef()*/
|
ZCLink* AddTailDef()*/
|
||||||
|
|
||||||
|
|
||||||
void AddHeadDef(TTypSize AL_DefaultSize)
|
void AddHeadDef(TypeSize AL_DefaultSize)
|
||||||
{
|
{
|
||||||
if(AL_DefaultSize<1) return;
|
if(AL_DefaultSize<1) return;
|
||||||
|
|
||||||
@ -1376,9 +1656,9 @@ namespace ZNsMain
|
|||||||
);
|
);
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
}/*
|
}/*
|
||||||
void AddHeadDef(TTypSize AL_DefaultSize)*/
|
void AddHeadDef(TypeSize AL_DefaultSize)*/
|
||||||
|
|
||||||
void AddTailDef(TTypSize AL_DefaultSize)
|
void AddTailDef(TypeSize AL_DefaultSize)
|
||||||
{
|
{
|
||||||
if(AL_DefaultSize<1) return;
|
if(AL_DefaultSize<1) return;
|
||||||
|
|
||||||
@ -1388,83 +1668,47 @@ namespace ZNsMain
|
|||||||
);
|
);
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
}/*
|
}/*
|
||||||
void AddTailDef(TTypSize AL_DefaultSize)*/
|
void AddTailDef(TypeSize AL_DefaultSize)*/
|
||||||
|
|
||||||
|
|
||||||
ZCLink* GetHeadLinkPtr (){return mp_HeadLink;}
|
TypeData & front() {return mp_HeadLink->mo_DataObjt;}
|
||||||
ZCLink* GetHeadIterEasy (){return mp_HeadLink;}
|
TypeData & back () {return mp_TailLink->mo_DataObjt;}
|
||||||
IterEasyID GetHeadIterEasyID(){return (IterEasyID)mp_HeadLink;}
|
|
||||||
|
|
||||||
ZCLink* GetTailLinkPtr (){return mp_TailLink;}
|
TypeDataC& front() const{return mp_HeadLink->mo_DataObjt;}
|
||||||
ZCLink* GetTailIterEasy (){return mp_TailLink;}
|
TypeDataC& back () const{return mp_TailLink->mo_DataObjt;}
|
||||||
IterEasyID GetTailIterEasyID(){return (IterEasyID)mp_TailLink;}
|
|
||||||
|
|
||||||
TType& front(){return mp_HeadLink->mo_DataObjt;}
|
|
||||||
TType& back (){return mp_TailLink->mo_DataObjt;}
|
|
||||||
|
|
||||||
|
|
||||||
const ZCLink* GetHeadLinkPtr () const{return mp_HeadLink;}
|
ZCLink * GetHeadLinkPtr () {return mp_HeadLink;}
|
||||||
const ZCLink* GetHeadIterEasy () const{return mp_HeadLink;}
|
ZCLink * GetHeadIterEasy () {return mp_HeadLink;}
|
||||||
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID)mp_HeadLink;}
|
IterEasyID GetHeadIterEasyID () {return (IterEasyID )mp_HeadLink;}
|
||||||
|
|
||||||
const ZCLink* GetTailLinkPtr () const{return mp_TailLink;}
|
ZCLink * GetTailLinkPtr () {return mp_TailLink;}
|
||||||
const ZCLink* GetTailIterEasy () const{return mp_TailLink;}
|
ZCLink * GetTailIterEasy () {return mp_TailLink;}
|
||||||
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)mp_TailLink;}
|
IterEasyID GetTailIterEasyID () {return (IterEasyID )mp_TailLink;}
|
||||||
|
|
||||||
const TType& front() const{return mp_HeadLink->mo_DataObjt;}
|
ZCLinkC* GetHeadLinkPtr () const{return mp_HeadLink;}
|
||||||
const TType& back () const{return mp_TailLink->mo_DataObjt;}
|
ZCLinkC* GetHeadIterEasy () const{return mp_HeadLink;}
|
||||||
|
IterEasyIDc GetHeadIterEasyID () const{return (IterEasyIDc)mp_HeadLink;}
|
||||||
|
|
||||||
|
ZCLinkC* GetTailLinkPtr () const{return mp_TailLink;}
|
||||||
|
ZCLinkC* GetTailIterEasy () const{return mp_TailLink;}
|
||||||
|
IterEasyIDc GetTailIterEasyID () const{return (IterEasyIDc)mp_TailLink;}
|
||||||
|
|
||||||
|
IterEasyIDc GetHeadIterEasyIDc() const{return (IterEasyIDc)mp_HeadLink;}
|
||||||
|
IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)mp_TailLink;}
|
||||||
|
|
||||||
|
|
||||||
void pop_back(TypeArg AR_Type)
|
void pop_back (TypeArg AR_Type){ return AddHead(AR_Type); }
|
||||||
{
|
void push_back(TypeArg AR_Type){ return AddTail(AR_Type); }
|
||||||
return AddHead(AR_Type);
|
|
||||||
}/*
|
|
||||||
void pop_back(TypeArg AR_Type)*/
|
|
||||||
|
|
||||||
void push_back(TypeArg AR_Type)
|
TypeData & GetHeadData() { return mp_HeadLink->mo_DataObjt; }
|
||||||
{
|
TypeDataC& GetHeadData() const{ return mp_HeadLink->mo_DataObjt; }
|
||||||
return AddTail(AR_Type);
|
|
||||||
}/*
|
|
||||||
void push_back(TypeArg AR_Type)*/
|
|
||||||
|
|
||||||
|
TypeData & GetTailData() { return mp_TailLink->mo_DataObjt ; }
|
||||||
|
TypeDataC& GetTailData() const{ return mp_TailLink->mo_DataObjt ; }
|
||||||
|
|
||||||
TType& GetHeadData()
|
TypeData & GetData(TypeSize AL_Index) { return GetLinkPtr(AL_Index)->mo_DataObjt; }
|
||||||
{
|
TypeDataC& GetData(TypeSize AL_Index) const{ return GetLinkPtr(AL_Index)->mo_DataObjt; }
|
||||||
return mp_HeadLink->mo_DataObjt;
|
|
||||||
}/*
|
|
||||||
TType& GetHeadData()*/
|
|
||||||
|
|
||||||
const TType& GetHeadData() const
|
|
||||||
{
|
|
||||||
return mp_HeadLink->mo_DataObjt;
|
|
||||||
}/*
|
|
||||||
const TType& GetHeadData() const*/
|
|
||||||
|
|
||||||
|
|
||||||
TType& GetTailData()
|
|
||||||
{
|
|
||||||
return mp_TailLink->mo_DataObjt ;
|
|
||||||
}/*
|
|
||||||
TType& GetTailData()*/
|
|
||||||
|
|
||||||
const TType& GetTailData() const
|
|
||||||
{
|
|
||||||
return mp_TailLink->mo_DataObjt ;
|
|
||||||
}/*
|
|
||||||
const TType& GetTailData() const*/
|
|
||||||
|
|
||||||
|
|
||||||
TType& GetData(TTypSize AL_Index)
|
|
||||||
{
|
|
||||||
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
|
||||||
}/*
|
|
||||||
TType& GetData(TTypSize AL_Index)*/
|
|
||||||
|
|
||||||
TType GetData(TTypSize AL_Index) const
|
|
||||||
{
|
|
||||||
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
|
||||||
}/*
|
|
||||||
TType GetData(TTypSize AL_Index) const*/
|
|
||||||
|
|
||||||
|
|
||||||
void JoinHead(ZCLink* AP_Link)
|
void JoinHead(ZCLink* AP_Link)
|
||||||
@ -1580,7 +1824,7 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
void DeleteHead()*/
|
void DeleteHead()*/
|
||||||
|
|
||||||
void DeleteHead(TTypSize AL_DelSize)
|
void DeleteHead(TypeSize AL_DelSize)
|
||||||
{
|
{
|
||||||
// AL_DelSize 개의 링크를 앞 부분에서 삭제
|
// AL_DelSize 개의 링크를 앞 부분에서 삭제
|
||||||
|
|
||||||
@ -1615,7 +1859,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||||
}/*
|
}/*
|
||||||
void DeleteHead(TTypSize AL_DelSize)*/
|
void DeleteHead(TypeSize AL_DelSize)*/
|
||||||
|
|
||||||
void DeleteTail()
|
void DeleteTail()
|
||||||
{
|
{
|
||||||
@ -1650,18 +1894,18 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
|
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
|
||||||
|
|
||||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)
|
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)
|
||||||
{
|
{
|
||||||
GetCFreeHeap().RecvFreeIn
|
GetCFreeHeap().RecvFreeIn
|
||||||
( CutLink(AP_PrevLink, AP_CutLink, AL_CutPos) );
|
( CutLink(AP_PrevLink, AP_CutLink, AL_CutPos) );
|
||||||
}/*
|
}/*
|
||||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)*/
|
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)*/
|
||||||
|
|
||||||
void Delete /*###################################*/
|
void Delete /*###################################*/
|
||||||
(
|
(
|
||||||
ZCLink* AP_CutHeadPrev,
|
ZCLink* AP_CutHeadPrev,
|
||||||
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
|
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
|
||||||
ZCLink* AP_CutTail, TTypSize AL_CutTailPos
|
ZCLink* AP_CutTail, TypeSize AL_CutTailPos
|
||||||
)
|
)
|
||||||
/*###############################################*/
|
/*###############################################*/
|
||||||
{
|
{
|
||||||
@ -1678,8 +1922,8 @@ namespace ZNsMain
|
|||||||
void Delete ///////////////////////////////////////
|
void Delete ///////////////////////////////////////
|
||||||
(
|
(
|
||||||
ZCLink* AP_CutHeadPrev,
|
ZCLink* AP_CutHeadPrev,
|
||||||
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
|
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
|
||||||
ZCLink* AP_CutTail, TTypSize AL_CutTailPos
|
ZCLink* AP_CutTail, TypeSize AL_CutTailPos
|
||||||
)
|
)
|
||||||
/////////////////////////////////////////////////*/
|
/////////////////////////////////////////////////*/
|
||||||
|
|
||||||
@ -1708,7 +1952,7 @@ namespace ZNsMain
|
|||||||
void clear(){DeleteAll();}
|
void clear(){DeleteAll();}
|
||||||
|
|
||||||
|
|
||||||
TTypSize Find(const ZCLink* AP_pSearchLink, TTypSize AL_FirstFindIndex=1) const
|
TypeSize Find(ZCLinkC* AP_pSearchLink, TypeSize AL_FirstFindIndex=1) const
|
||||||
{
|
{
|
||||||
const bool CB_DoStop = //////////////////////
|
const bool CB_DoStop = //////////////////////
|
||||||
(
|
(
|
||||||
@ -1719,7 +1963,7 @@ namespace ZNsMain
|
|||||||
if(CB_DoStop) {return 0;} ///////////////////
|
if(CB_DoStop) {return 0;} ///////////////////
|
||||||
|
|
||||||
|
|
||||||
TTypSize VL_FindIndex = AL_FirstFindIndex ;
|
TypeSize VL_FindIndex = AL_FirstFindIndex ;
|
||||||
ZCLink* VP_TempLink = const_cast
|
ZCLink* VP_TempLink = const_cast
|
||||||
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
|
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
|
||||||
|
|
||||||
@ -1736,9 +1980,9 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
while(true);
|
while(true);
|
||||||
}/*
|
}/*
|
||||||
TTypSize Find(ZCLink* AP_pSearchLink, TTypSize AL_FirstFindIndex=1) const*/
|
TypeSize Find(ZCLink* AP_pSearchLink, TypeSize AL_FirstFindIndex=1) const*/
|
||||||
|
|
||||||
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1)
|
TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)
|
||||||
{
|
{
|
||||||
const bool CB_DoStop = //////////////////////
|
const bool CB_DoStop = //////////////////////
|
||||||
(
|
(
|
||||||
@ -1749,7 +1993,7 @@ namespace ZNsMain
|
|||||||
if(CB_DoStop) return 0; /////////////////////
|
if(CB_DoStop) return 0; /////////////////////
|
||||||
|
|
||||||
|
|
||||||
TTypSize VL_FindIndex = AL_FirstFindIndex ;
|
TypeSize VL_FindIndex = AL_FirstFindIndex ;
|
||||||
ZCLink* VP_TempLink = const_cast
|
ZCLink* VP_TempLink = const_cast
|
||||||
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
|
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
|
||||||
|
|
||||||
@ -1766,7 +2010,7 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
while(true);
|
while(true);
|
||||||
}/*
|
}/*
|
||||||
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1)*/
|
TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)*/
|
||||||
|
|
||||||
|
|
||||||
/*////////////////////////////////////////////////////////////////////////////////////////
|
/*////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -1778,40 +2022,29 @@ namespace ZNsMain
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////*/
|
////////////////////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
TTypSize FindData(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) const
|
TypeSize FindData(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1) const
|
||||||
{
|
{
|
||||||
return Find(AR_TypeArg, AL_FirstFindIndex);
|
return Find(AR_TypeArg, AL_FirstFindIndex);
|
||||||
}/*
|
}/*
|
||||||
TTypSize FindData(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) const*/
|
TypeSize FindData(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1) const*/
|
||||||
|
|
||||||
|
|
||||||
ZCLink* GetLinkPtr(TTypSize AL_Index)
|
ZCLink * GetLinkPtr(TypeSize AL_Index)
|
||||||
{
|
{ return mp_HeadLink->GetNextPtr(AL_Index-1); }
|
||||||
return mp_HeadLink->GetNextPtr(AL_Index-1);
|
|
||||||
}/*
|
ZCLinkC* GetLinkPtr(TypeSize AL_Index) const
|
||||||
ZCLink* GetLinkPtr(TTypSize AL_Index)*/
|
{ return mp_HeadLink->GetNextPtr(AL_Index-1); }
|
||||||
|
|
||||||
|
|
||||||
const ZCLink* GetLinkPtr(TTypSize AL_Index) const
|
ZCFreeHeap& GetCFreeHeap() const{return mo_FreeObjt;}
|
||||||
{
|
|
||||||
return mp_HeadLink->GetNextPtr(AL_Index-1);
|
|
||||||
}/*
|
|
||||||
const ZCLink* GetLinkPtr(TTypSize AL_Index) const*/
|
|
||||||
|
|
||||||
|
|
||||||
ZCFreeHeap& GetCFreeHeap() const
|
inline TypeSize GetSize() const
|
||||||
{
|
|
||||||
return mo_FreeObjt;
|
|
||||||
}/*
|
|
||||||
ZCFreeHeap& GetCFreeHeap() const*/
|
|
||||||
|
|
||||||
|
|
||||||
inline TTypSize GetSize() const
|
|
||||||
{ return ml_LinkSize; }
|
{ return ml_LinkSize; }
|
||||||
inline TTypSize size () const
|
inline TypeSize size () const
|
||||||
{ return ml_LinkSize; }
|
{ return ml_LinkSize; }
|
||||||
|
|
||||||
inline TTypSize capacity() const
|
inline TypeSize capacity() const
|
||||||
{ return size()+mo_FreeObjt.size(); }
|
{ return size()+mo_FreeObjt.size(); }
|
||||||
|
|
||||||
inline TypeSize GetFreeSize() const
|
inline TypeSize GetFreeSize() const
|
||||||
@ -2068,125 +2301,74 @@ namespace ZNsMain
|
|||||||
|
|
||||||
-- 2011-06-07 20:25:00
|
-- 2011-06-07 20:25:00
|
||||||
|
|
||||||
GetDataInIter() 를 추가했다.
|
|
||||||
|
|
||||||
-- 2011-06-12 17:12:00
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////*/
|
///////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
void MoveNextIter(ZCLink*& APR_CLink)
|
void MoveNextIter(ZCLink* & APR_CLink ) { APR_CLink=APR_CLink->GetNextPtr() ; }
|
||||||
{
|
void MoveNextIter(iterator & ARR_iterator ) { ++ARR_iterator ; }
|
||||||
APR_CLink=APR_CLink->GetNextPtr();
|
void MoveNextIter(IterEasyID & APPI_IterEasyID)
|
||||||
}/*
|
{ MoveNextIter((ZCLink* &)APPI_IterEasyID); }
|
||||||
void MoveNextIter(ZCLink*& APR_CLink)*/
|
|
||||||
|
|
||||||
void MoveNextIter(IterEasyID& APPI_IterEasyID)
|
|
||||||
{
|
|
||||||
MoveNextIter((ZCLink*&)APPI_IterEasyID);
|
|
||||||
}/*
|
|
||||||
void MoveNextIter(IterEasyID& APPI_IterEasyID)*/
|
|
||||||
|
|
||||||
void MoveNextIter(const ZCLink*& APR_CLink) const
|
|
||||||
{
|
|
||||||
APR_CLink=APR_CLink->GetNextPtr();
|
|
||||||
}/*
|
|
||||||
void MoveNextIter(const ZCLink*& APR_CLink) const*/
|
|
||||||
|
|
||||||
void MoveNextIter(const IterEasyID& APPI_IterEasyID) const
|
|
||||||
{
|
|
||||||
MoveNextIter((const ZCLink*&)APPI_IterEasyID);
|
|
||||||
}/*
|
|
||||||
void MoveNextIter(const IterEasyID& APPI_IterEasyID) const*/
|
|
||||||
|
|
||||||
|
|
||||||
TType& GetDataInIter(ZCLink* AP_CLink)
|
|
||||||
{
|
|
||||||
return **AP_CLink;
|
|
||||||
}/*
|
|
||||||
TType& GetDataInIter(ZCLink* AP_CLink)*/
|
|
||||||
|
|
||||||
TType& GetDataInIter(IterEasyID APPI_IterEasyID)
|
|
||||||
{
|
|
||||||
return GetDataInIter((ZCLink*)APPI_IterEasyID);
|
|
||||||
}/*
|
|
||||||
TType& GetDataInIter(IterEasyID APPI_IterEasyID)*/
|
|
||||||
|
|
||||||
const TType& GetDataInIter(const ZCLink* AP_CLink) const
|
|
||||||
{
|
|
||||||
return **AP_CLink;
|
|
||||||
}/*
|
|
||||||
const TType& GetDataInIter(const ZCLink* AP_CLink) const*/
|
|
||||||
|
|
||||||
const TType& GetDataInIter(const IterEasyID APPI_IterEasyID) const
|
|
||||||
{
|
|
||||||
return GetDataInIter((const ZCLink*)APPI_IterEasyID);
|
|
||||||
}/*
|
|
||||||
const TType& GetDataInIter(const IterEasyID APPI_IterEasyID) const*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
ZCLink* ItHEasy() {return mp_HeadLink;}
|
void MoveNextIter(ZCLinkC* & APR_CLink ) const{ APR_CLink=APR_CLink->GetNextPtr() ; }
|
||||||
IterEasyID ItHID () {return (IterEasyID)mp_HeadLink;}
|
void MoveNextIter(iteratorN & ARR_iterator ) const{ ++ARR_iterator ; }
|
||||||
|
void MoveNextIter(IterEasyIDc& APPI_IterEasyID) const
|
||||||
|
{ MoveNextIter((ZCLinkC*&)APPI_IterEasyID); }
|
||||||
|
|
||||||
ZCLink* ItTEasy() {return mp_TailLink;}
|
|
||||||
IterEasyID ItTID () {return (IterEasyID)mp_TailLink;}
|
ZCLink * ItHEasy() {return mp_HeadLink;}
|
||||||
|
ZCLink * ItTEasy() {return mp_TailLink;}
|
||||||
|
IterEasyID ItHID () {return (IterEasyID )mp_HeadLink;}
|
||||||
|
IterEasyID ItTID () {return (IterEasyID )mp_TailLink;}
|
||||||
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
const ZCLink* ItHEasy() const{return mp_HeadLink;}
|
ZCLinkC* ItHEasy() const{return mp_HeadLink;}
|
||||||
const IterEasyID ItHID () const{return (IterEasyIDc)mp_HeadLink;}
|
ZCLinkC* ItTEasy() const{return mp_TailLink;}
|
||||||
|
IterEasyIDc ItHID () const{return (IterEasyIDc)mp_HeadLink;}
|
||||||
|
IterEasyIDc ItTID () const{return (IterEasyIDc)mp_TailLink;}
|
||||||
|
|
||||||
const ZCLink* ItTEasy() const{return mp_TailLink;}
|
IterEasyIDc ItHIDc () const{return (IterEasyIDc)mp_HeadLink;}
|
||||||
const IterEasyID ItTID () const{return (IterEasyIDc)mp_TailLink;}
|
IterEasyIDc ItTIDc () const{return (IterEasyIDc)mp_TailLink;}
|
||||||
|
|
||||||
|
|
||||||
void ItNext(ZCLink*& APR_CLink)
|
void ItNext(ZCLink* & APR_CLink ) { MoveNextIter(APR_CLink) ; }
|
||||||
{
|
void ItNext(IterEasyID & AH_IterEasyID) { MoveNextIter(AH_IterEasyID); }
|
||||||
MoveNextIter(APR_CLink);
|
void ItNext(iterator & ARR_Iterator ) { ++ARR_Iterator ; }
|
||||||
}/*
|
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
void ItNext(ZCLink*& APR_CLink)*/
|
void ItNext(ZCLinkC* & APR_CLink ) const{ MoveNextIter(APR_CLink) ; }
|
||||||
|
void ItNext(IterEasyIDc & AH_IterEasyID) const{ MoveNextIter(AH_IterEasyID); }
|
||||||
void ItNext(IterEasyID& APPI_IterEasyID)
|
void ItNext(iteratorN & ARR_Iterator ) const{ ++ARR_Iterator ; }
|
||||||
{
|
|
||||||
MoveNextIter(APPI_IterEasyID);
|
|
||||||
}/*
|
|
||||||
void ItNext(IterEasyID& APPI_IterEasyID)*/
|
|
||||||
|
|
||||||
void ItNext(const ZCLink*& APR_CLink) const
|
|
||||||
{
|
|
||||||
MoveNextIter(APR_CLink);
|
|
||||||
}/*
|
|
||||||
void ItNext(const ZCLink*& APR_CLink) const*/
|
|
||||||
|
|
||||||
void ItNext(const IterEasyID& APPI_IterEasyID) const
|
|
||||||
{
|
|
||||||
MoveNextIter(APPI_IterEasyID);
|
|
||||||
}/*
|
|
||||||
void ItNext(const IterEasyID& APPI_IterEasyID) const*/
|
|
||||||
|
|
||||||
|
|
||||||
TType& ItD(ZCLink* AP_CLink)
|
TypeData & ItD(ZCLink* AP_CLink ) { return **AP_CLink; }
|
||||||
{
|
TypeData & ItD(IterEasyID AH_IterEasyID) { return **((ZCLink *)AH_IterEasyID); }
|
||||||
return **AP_CLink;
|
TypeData & ItD(iterator & ARR_Iterator ) { return *ARR_Iterator; }
|
||||||
}/*
|
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
TType& ItD(ZCLink* AP_CLink)*/
|
TypeDataC& ItD(ZCLinkC* AP_CLink ) const{ return **AP_CLink; }
|
||||||
|
TypeDataC& ItD(IterEasyIDc AH_IterEasyID) const{ return **((ZCLinkC*)AH_IterEasyID); }
|
||||||
|
TypeDataC& ItD(iteratorN& ARR_Iterator ) const{ return *ARR_Iterator; }
|
||||||
|
|
||||||
TType& ItD(IterEasyID APPI_IterEasyID)
|
|
||||||
{
|
|
||||||
return ItD((ZCLink*)APPI_IterEasyID);
|
|
||||||
}/*
|
|
||||||
TType& ItD(IterEasyID APPI_IterEasyID)*/
|
|
||||||
|
|
||||||
const TType& ItD(const ZCLink* AP_CLink) const
|
iterator begin () { return ZCNodePoint (*this); }
|
||||||
{
|
iteratorN begin () const{ return ZNodekPointN(*this); }
|
||||||
return **AP_CLink;
|
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
|
||||||
}/*
|
iteratorN end () const{ return ZNodekPointN::MakeTailPoint(*this); }
|
||||||
const TType& ItD(const ZCLink* AP_CLink) const*/
|
|
||||||
|
|
||||||
const TType& ItD(const IterEasyID APPI_IterEasyID) const
|
iteratorN cbegin() const{ return ZNodekPointN(*this); }
|
||||||
{
|
iteratorN cend () const{ return ZNodekPointN::MakeTailPoint(*this); }
|
||||||
return ItD((const ZCLink*)APPI_IterEasyID);
|
|
||||||
}/*
|
|
||||||
const TType& ItD(const IterEasyID APPI_IterEasyID) const*/
|
ZCLink * HeadPtr() {return mp_HeadLink;}
|
||||||
|
ZCLink * TailPtr() {return mp_TailLink;}
|
||||||
|
ZCLinkC* HeadPtr() const{return mp_HeadLink;}
|
||||||
|
ZCLinkC* TailPtr() const{return mp_TailLink;}
|
||||||
|
|
||||||
|
ZCLink * HeadPtr(TypeSize AI_Distance) {return &((*mp_HeadLink)+AI_Distance);}
|
||||||
|
ZCLinkC* HeadPtr(TypeSize AI_Distance) const{return &((*mp_HeadLink)+AI_Distance);}
|
||||||
|
|
||||||
|
|
||||||
|
ZCLink & HeadRef() {return *mp_HeadLink;}
|
||||||
|
ZCLinkC& HeadRef() const{return *mp_HeadLink;}
|
||||||
|
|
||||||
|
ZCLink & HeadRef(TypeSize AI_Distance) {return (*mp_HeadLink)+AI_Distance;}
|
||||||
|
ZCLinkC& HeadRef(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
|
@ -307,10 +307,10 @@ namespace ZNsMain
|
|||||||
typedef const TTypCh* TypeCharCP ;
|
typedef const TTypCh* TypeCharCP ;
|
||||||
typedef const TTypCh* TypeCPChar ;
|
typedef const TTypCh* TypeCPChar ;
|
||||||
typedef TTypCh* TypePChar ;
|
typedef TTypCh* TypePChar ;
|
||||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
|
||||||
typedef TTypeString ZCTypeString;
|
typedef TTypeString ZCTypeString;
|
||||||
typedef ZtCStringBase ZCStringBase;
|
typedef ZtCStringBase ZCStringBase;
|
||||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
|
||||||
typedef ZtCStringBase TypeThis ;
|
typedef ZtCStringBase TypeThis ;
|
||||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
typedef typename ZCTypeString::ZCSearchInfo ZCSearchInfo ;
|
typedef typename ZCTypeString::ZCSearchInfo ZCSearchInfo ;
|
||||||
@ -320,21 +320,22 @@ namespace ZNsMain
|
|||||||
typedef typename ZCTypeString::TypeLong TypeLong ;
|
typedef typename ZCTypeString::TypeLong TypeLong ;
|
||||||
typedef typename ZCTypeString::TypeLong TypeSize ;
|
typedef typename ZCTypeString::TypeLong TypeSize ;
|
||||||
typedef typename ZCTypeString::TypeLong TypeLength ;
|
typedef typename ZCTypeString::TypeLong TypeLength ;
|
||||||
public:
|
|
||||||
typedef typename ZCTypeChars ::ZCChars ZCChars ;
|
|
||||||
typedef typename ZCTypeChars ::ZCChars ZCCharView ; // for string_view in C++17
|
|
||||||
public:
|
|
||||||
typedef const ZCChars ZCCharsC ;
|
|
||||||
typedef const ZCChars ZCCharViewC;
|
|
||||||
public:
|
|
||||||
typedef TypeChar TypeData ;
|
|
||||||
typedef ZCStringList TypeList ;
|
|
||||||
public:
|
|
||||||
typedef ZNsMain::ZtCCharType<ZtCStringBase> ZCCharType ;
|
|
||||||
typedef typename ZCCharType::TypeInt TypeCharInt;
|
|
||||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
typedef ZNsMain::ZtCCharType<ZtCStringBase> traits_type; // for strl string/wstring
|
typedef typename ZCTypeChars ::ZCChars ZCChars ;
|
||||||
typedef TypeSize size_type ; // for strl string/wstring
|
typedef typename ZCTypeChars ::ZCChars ZCCharView ; // for string_view in C++17
|
||||||
|
|
||||||
|
typedef const ZCChars ZCCharsC ;
|
||||||
|
typedef const ZCChars ZCCharViewC ;
|
||||||
|
|
||||||
|
typedef TypeChar TypeData ;
|
||||||
|
typedef ZCStringList TypeList ;
|
||||||
|
|
||||||
|
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
|
typedef ZtCCharType<ZtCStringBase> ZCCharType ;
|
||||||
|
typedef typename ZCCharType::TypeInt TypeCharInt;
|
||||||
|
|
||||||
|
typedef ZtCCharType<ZtCStringBase> traits_type; // for strl string/wstring
|
||||||
|
typedef TypeSize size_type ; // for strl string/wstring
|
||||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||||
|
|
||||||
enum EWriteFile // WriteFile() 에서 사용한다.
|
enum EWriteFile // WriteFile() 에서 사용한다.
|
||||||
|
@ -470,6 +470,7 @@ namespace ZNsMain
|
|||||||
■ class ZtCTreeData 예제 -- 2015-08-14 14:00
|
■ class ZtCTreeData 예제 -- 2015-08-14 14:00
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include "ZCppMain/ZtCStringEx.H"
|
||||||
#include "ZCppMain/ZtCTreeData.H"
|
#include "ZCppMain/ZtCTreeData.H"
|
||||||
|
|
||||||
using namespace std ;
|
using namespace std ;
|
||||||
|
@ -376,8 +376,59 @@ namespace ZNsMain
|
|||||||
static void ShowNode11_3(ZCLink11& AR_CLink, ZTypLong& ARRI_CallCnt)*/
|
static void ShowNode11_3(ZCLink11& AR_CLink, ZTypLong& ARRI_CallCnt)*/
|
||||||
|
|
||||||
|
|
||||||
|
class ZCTypeView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
template<typename TTypChain> void OnMeetType()
|
||||||
|
{
|
||||||
|
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
template<typename TTypChain, typename TTypHelp> void OnMeetType(int& AR_CallNo)
|
||||||
|
{
|
||||||
|
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
};/*
|
||||||
|
class ZCTypeView*/
|
||||||
|
|
||||||
|
|
||||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||||
{
|
{
|
||||||
|
typedef ZtCTypeChain
|
||||||
|
<
|
||||||
|
double , ZtCTypeChain<
|
||||||
|
int , ZtCTypeChain<
|
||||||
|
wchar_t, ZtCTypeChain<
|
||||||
|
char ,
|
||||||
|
|
||||||
|
ZCEmpty > > >
|
||||||
|
> ZCTypeChain; ZCTypeView VO_ZCTypeView;
|
||||||
|
|
||||||
|
int VI_CallNo = 0;
|
||||||
|
|
||||||
|
cout<<"*** tmpl chain size = "<<ZCTypeChain::Size()<<endl;
|
||||||
|
|
||||||
|
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
|
||||||
|
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterHead(VO_ZCTypeView);
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
|
||||||
|
|
||||||
|
ZftIterTypeChainHead<ZCTypeChain, ZCTypeView&, int&>
|
||||||
|
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&, int&>
|
||||||
|
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||||
|
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZCTypeChain::ZtCIterChain<ZCTypeView>::
|
||||||
|
IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZCTypeChain::ZtCIterChain<ZCTypeView>::
|
||||||
|
IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||||
|
|
||||||
|
|
||||||
ZTypLong VI_CallCnt=0;
|
ZTypLong VI_CallCnt=0;
|
||||||
|
|
||||||
CStringBase VO_CStringBase;
|
CStringBase VO_CStringBase;
|
||||||
@ -657,34 +708,168 @@ namespace ZNsMain
|
|||||||
cout<<"*****************************************************"<<endl;
|
cout<<"*****************************************************"<<endl;
|
||||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.SendRangeInAfter(1th~3th => 6th)"<<endl;
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInAfter(1th~3th => 6th)"<<endl;
|
||||||
VO_ZCBaseListEx10_2.SendRangeInAfter
|
VO_ZCBaseListEx10_2.MoveRangeInAfter
|
||||||
(
|
(
|
||||||
VO_ZCBaseListEx10_2.HeadRef( ),
|
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||||
VO_ZCBaseListEx10_2.HeadRef(2),
|
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||||
3,
|
|
||||||
VO_ZCBaseListEx10_2.HeadOpt(5)
|
VO_ZCBaseListEx10_2.HeadOpt(5)
|
||||||
);
|
);
|
||||||
cout<<"*****************************************************"<<endl;
|
cout<<"*****************************************************"<<endl;
|
||||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.SendRangeInBefore(4th~6th => 1th)"<<endl;
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInBefore(4th~6th => 1th)"<<endl;
|
||||||
VO_ZCBaseListEx10_2.SendRangeInBefore
|
VO_ZCBaseListEx10_2.MoveRangeInBefore
|
||||||
(
|
(
|
||||||
VO_ZCBaseListEx10_2.HeadRef(3),
|
VO_ZCBaseListEx10_2.HeadRef(3),
|
||||||
VO_ZCBaseListEx10_2.HeadRef(5),
|
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||||
3,
|
|
||||||
VO_ZCBaseListEx10_2.HeadOpt( )
|
VO_ZCBaseListEx10_2.HeadOpt( )
|
||||||
);
|
);
|
||||||
cout<<"*****************************************************"<<endl;
|
cout<<"*****************************************************"<<endl;
|
||||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
cout<<endl<<"# VO_ZCBaseListEx10_2 for_iter() show "<<endl;
|
cout<<endl<<"# VO_ZCBaseListEx10_2 for_it() show "<<endl;
|
||||||
__for_iter(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
__for_it(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
||||||
{
|
{
|
||||||
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cout<<endl<<"# VO_ZCBaseListEx10_2 for_it_r() show "<<endl;
|
||||||
|
__for_it_r(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
||||||
|
{
|
||||||
|
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
cout<<endl<<"# VO_ZCBaseListEx10_2 for_itc() show "<<endl;
|
||||||
|
__for_itc(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
||||||
|
{
|
||||||
|
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
||||||
|
}
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
|
||||||
|
_FOR_ITER_EASY_START0_C (VO_ZCBaseListEx10_2, VH_NowIter, i)
|
||||||
|
{
|
||||||
|
cout<<"# list10_2 const: "<<(i+1)<<" "<<VO_ZCBaseListEx10_2.ItD(VH_NowIter)<<endl;
|
||||||
|
}
|
||||||
|
_FOR_ITER_EASY_CLOSE0_C (VO_ZCBaseListEx10_2, VH_NowIter, i)
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
|
||||||
|
_FOR_ITER_EASY_START0_RC(VO_ZCBaseListEx10_2, VH_NowIter, i)
|
||||||
|
{
|
||||||
|
cout<<"# list10_2 rev const: "<<(i+1)<<" "<<VO_ZCBaseListEx10_2.ItD(VH_NowIter)<<endl;
|
||||||
|
}
|
||||||
|
_FOR_ITER_EASY_CLOSE0_RC(VO_ZCBaseListEx10_2, VH_NowIter, i)
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(1th, 3th after)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(3th, 6th after)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(6th, 1th before)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(1th, 6th after)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 3th after)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(1),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 3th before)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(1),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 1th before)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(1),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(1th, 3th, 6th after)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveRangeIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(5th, 6th, 1th before)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveRangeIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(4),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(2th, 3th, 4th after)"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.MoveRangeIn
|
||||||
|
(
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(1),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||||
|
VO_ZCBaseListEx10_2.HeadRef(3),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
cout<<"*****************************************************"<<endl;
|
||||||
|
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}/*
|
}/*
|
||||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||||
|
@ -71,12 +71,14 @@ namespace ZNsMain
|
|||||||
|
|
||||||
typedef ZNsIFaceEx::ZtCLink
|
typedef ZNsIFaceEx::ZtCLink
|
||||||
<ZCEmpty, ZCLinkData> ZCLinkBase;
|
<ZCEmpty, ZCLinkData> ZCLinkBase;
|
||||||
|
typedef ZNsIFaceEx::ZtCLink
|
||||||
|
<string , ZCEmpty > ZCLinkStr ;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef ZCLinkData ZCLinkCStr ;
|
typedef ZtCLinkList<ZCLinkBase> ZCLinkDataList;
|
||||||
typedef ZtCLinkList<ZCLinkBase> ZCLinkStrList;
|
typedef ZtCLinkList<ZCLinkStr > ZCLinkStrList ;
|
||||||
typedef typename
|
typedef typename
|
||||||
ZCLinkStrList::ZCLinkOpt ZCStrLinkOpt ;
|
ZCLinkDataList::ZCLinkOpt ZCStrLinkOpt ;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
@ -108,23 +110,28 @@ namespace ZNsMain
|
|||||||
|
|
||||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||||
{
|
{
|
||||||
ZTypLong VI_CallCnt = 0 ;
|
ZTypLong VI_CallCnt =0 ;
|
||||||
ZCLinkStrList VO_ZCLinkStrLis1;
|
ZCLinkDataList VO_CDataList1;
|
||||||
ZCLinkStrList VO_ZCLinkStrLis2;
|
ZCLinkDataList VO_CDataList2;
|
||||||
ZCStrLinkOpt VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1);
|
ZCLinkStrList VO_CStrLis20 ;
|
||||||
|
ZCStrLinkOpt VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
|
||||||
|
|
||||||
cout<<"# VO_StrLinkOpt.has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
cout<<"# VO_StrLinkOpt.has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||||
cout<<"# VO_StrLinkOpt.bool() ="<<bool(VO_StrLinkOpt) <<endl;
|
cout<<"# VO_StrLinkOpt.bool() ="<<bool(VO_StrLinkOpt) <<endl;
|
||||||
|
|
||||||
VO_ZCLinkStrLis1.AddTail()().GetData()=string("123");
|
VO_CDataList1.AddTail()().GetData()=string("123");
|
||||||
VO_ZCLinkStrLis1.AddTail()().GetData()=string("ABC");
|
VO_CDataList1.AddTail()().GetData()=string("ABC");
|
||||||
VO_ZCLinkStrLis1.AddTail()().GetData()=string("xyz");
|
VO_CDataList1.AddTail()().GetData()=string("xyz");
|
||||||
|
|
||||||
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z01");
|
VO_CDataList2.AddTail()().GetData()=string("Z01");
|
||||||
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z02");
|
VO_CDataList2.AddTail()().GetData()=string("Z02");
|
||||||
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z03");
|
VO_CDataList2.AddTail()().GetData()=string("Z03");
|
||||||
|
|
||||||
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1);
|
VO_CStrLis20.AddTail()()=string("__1");
|
||||||
|
VO_CStrLis20.AddTail()()=string("__2");
|
||||||
|
VO_CStrLis20.AddTail()()=string("__3");
|
||||||
|
|
||||||
|
VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
|
||||||
|
|
||||||
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||||
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
|
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
|
||||||
@ -136,7 +143,7 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
if(VO_StrLinkOpt.has_value())*/
|
if(VO_StrLinkOpt.has_value())*/
|
||||||
|
|
||||||
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetTailOpt();
|
VO_StrLinkOpt = VO_CDataList1.GetTailOpt();
|
||||||
|
|
||||||
cout<<"# VO_StrLinkOpt.GetTailOpt() : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
cout<<"# VO_StrLinkOpt.GetTailOpt() : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||||
cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl;
|
cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl;
|
||||||
@ -150,107 +157,175 @@ namespace ZNsMain
|
|||||||
|
|
||||||
|
|
||||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
VO_ZCLinkStrLis1.JoinHead(VO_ZCLinkStrLis2);
|
VO_CDataList1.JoinHead(VO_CDataList2);
|
||||||
|
|
||||||
cout<<"# after VO_ZCLinkStrLis1.JoinHead(VO_ZCLinkStrLis2)"<<endl;
|
cout<<"# after VO_CDataList1.JoinHead(VO_CDataList2)"<<endl;
|
||||||
|
|
||||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
VO_ZCLinkStrLis2 = VO_ZCLinkStrLis1 ;
|
VO_CDataList2 = VO_CDataList1 ;
|
||||||
|
|
||||||
cout<<"# after VO_ZCLinkStrLis2 = VO_ZCLinkStrLis1"<<endl;
|
cout<<"# after VO_CDataList2 = VO_CDataList1"<<endl;
|
||||||
|
|
||||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
VO_ZCLinkStrLis1.IterElement(&AppendEach);
|
VO_CDataList1.IterElement(&AppendEach);
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
VO_ZCLinkStrLis1.SendRangeOutAfter
|
VO_CDataList1.SendRangeOutAfter
|
||||||
(
|
(
|
||||||
VO_ZCLinkStrLis1.GetObjOpt(1).value()
|
VO_CDataList1.GetObjOpt(1).value()
|
||||||
, VO_ZCLinkStrLis1.GetObjOpt(2).value()
|
, VO_CDataList1.GetObjOpt(2).value()
|
||||||
, 2
|
, 2
|
||||||
, VO_ZCLinkStrLis2
|
, VO_CDataList2
|
||||||
, VO_ZCLinkStrLis2.GetObjOpt(1)
|
, VO_CDataList2.GetObjOpt(1)
|
||||||
) ;
|
) ;
|
||||||
cout<<"# after VO_ZCLinkStrLis1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
|
cout<<"# after VO_CDataList1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
|
||||||
|
|
||||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
VO_ZCLinkStrLis2.SendRangeOutBefore
|
VO_CDataList2.SendRangeOutBefore
|
||||||
(
|
(
|
||||||
VO_ZCLinkStrLis2.GetObjOpt(7).value()
|
VO_CDataList2.GetObjOpt(7).value()
|
||||||
, VO_ZCLinkStrLis2.GetObjOpt(8).value()
|
, VO_CDataList2.GetObjOpt(8).value()
|
||||||
, 2
|
, 2
|
||||||
, VO_ZCLinkStrLis1
|
, VO_CDataList1
|
||||||
, VO_ZCLinkStrLis1.GetObjOpt(1)
|
, VO_CDataList1.GetObjOpt(1)
|
||||||
) ;
|
) ;
|
||||||
cout<<"# after VO_ZCLinkStrLis2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
|
cout<<"# after VO_CDataList2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
|
||||||
|
|
||||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) );
|
VO_CDataList2.CopyThis( RR(VO_CDataList1) );
|
||||||
cout<<"# after VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) )"<<endl;
|
cout<<"# after VO_CDataList2.CopyThis( RR(VO_CDataList1) )"<<endl;
|
||||||
|
|
||||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
VO_ZCLinkStrLis1.SwapLink
|
VO_CDataList1.SwapLink
|
||||||
(VO_ZCLinkStrLis1.HeadRef(), VO_ZCLinkStrLis1.HeadRef(1));
|
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(1));
|
||||||
cout<<"# after VO_ZCLinkStrLis1.SwapLink(1th, 2th)"<<endl;
|
cout<<"# after VO_CDataList1.SwapLink(1th, 2th)"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
VO_ZCLinkStrLis1.SwapLink
|
VO_CDataList1.SwapLink
|
||||||
(VO_ZCLinkStrLis1.HeadRef(), VO_ZCLinkStrLis1.HeadRef(11));
|
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(11));
|
||||||
cout<<"# after VO_ZCLinkStrLis1.SwapLink(1th, 12th)"<<endl;
|
cout<<"# after VO_CDataList1.SwapLink(1th, 12th)"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
VO_ZCLinkStrLis1.SwapLink
|
VO_CDataList1.SwapLink
|
||||||
(VO_ZCLinkStrLis1.HeadRef(11), VO_ZCLinkStrLis1.HeadRef(10));
|
(VO_CDataList1.HeadRef(11), VO_CDataList1.HeadRef(10));
|
||||||
cout<<"# after VO_ZCLinkStrLis1.SwapLink(12th, 11th)"<<endl;
|
cout<<"# after VO_CDataList1.SwapLink(12th, 11th)"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
VO_ZCLinkStrLis1.MoveLinkTail
|
VO_CDataList1.MoveLinkTail
|
||||||
(VO_ZCLinkStrLis1.HeadRef());
|
(VO_CDataList1.HeadRef());
|
||||||
cout<<"# after VO_ZCLinkStrLis1.MoveLinkTail(1th)"<<endl;
|
cout<<"# after VO_CDataList1.MoveLinkTail(1th)"<<endl;
|
||||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
cout<<"***********************************************"<<endl;
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
_FOR_ITER_EASY_START0_C (VO_CDataList1, VH_NowIter, i)
|
||||||
|
{
|
||||||
|
cout<<"# list1 const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
|
||||||
|
}
|
||||||
|
_FOR_ITER_EASY_CLOSE0_C (VO_CDataList1, VH_NowIter, i)
|
||||||
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
_FOR_ITER_EASY_START0_RC(VO_CDataList1, VH_NowIter, i)
|
||||||
|
{
|
||||||
|
cout<<"# list1 rev const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
|
||||||
|
}
|
||||||
|
_FOR_ITER_EASY_CLOSE0_RC(VO_CDataList1, VH_NowIter, i)
|
||||||
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
__for_it(ZCLinkDataList, VO_CDataList1, VH_NowIter)
|
||||||
|
{
|
||||||
|
cout<<"# list1 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter).GetData()<<endl;
|
||||||
|
}
|
||||||
|
cout<<"***********************************************"<<endl;
|
||||||
|
__for_it(ZCLinkStrList , VO_CStrLis20, VH_NowIter)
|
||||||
|
{
|
||||||
|
cout<<"# list20 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter)<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
_FOR_ITER_EASY_START0_C(VO_CStrLis20, VH_NowIter, i)
|
||||||
|
{
|
||||||
|
cout<<"# list20 const: "<<(i+1)<<" "<<VO_CStrLis20.ItD(VH_NowIter)<<endl;
|
||||||
|
}
|
||||||
|
_FOR_ITER_EASY_CLOSE0_C(VO_CStrLis20, VH_NowIter, i)
|
||||||
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
VO_CDataList1.MoveRangeIn
|
||||||
|
(
|
||||||
|
VO_CDataList1.HeadRef( ),
|
||||||
|
VO_CDataList1.HeadRef(1 ),
|
||||||
|
VO_CDataList1.HeadRef(11),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
cout<<"# after VO_CDataList1.MoveRangeIn(1th, 2th, 12th, after)"<<endl;
|
||||||
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
VO_CDataList1.MoveRangeIn
|
||||||
|
(
|
||||||
|
VO_CDataList1.HeadRef(1 ),
|
||||||
|
VO_CDataList1.HeadRef(11),
|
||||||
|
VO_CDataList1.HeadRef( ),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
cout<<"# after VO_CDataList1.MoveRangeIn(2th, 12th, 1th, before)"<<endl;
|
||||||
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
VO_CDataList1.MoveRangeIn
|
||||||
|
(
|
||||||
|
VO_CDataList1.HeadRef( ),
|
||||||
|
VO_CDataList1.HeadRef(1),
|
||||||
|
VO_CDataList1.HeadRef(2),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
cout<<"# after VO_CDataList1.MoveRangeIn(1th, 2th, 3th, before)"<<endl;
|
||||||
|
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||||
|
cout<<"***********************************************"<<endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}/*
|
}/*
|
||||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||||
|
140
ZCppMainTest/ZtCLink_001.cpp
Normal file
140
ZCppMainTest/ZtCLink_001.cpp
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include "ZCppMain/ZtCLinkList.H"
|
||||||
|
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
namespace ZNsMain
|
||||||
|
{
|
||||||
|
|
||||||
|
namespace ZNsExam
|
||||||
|
{
|
||||||
|
|
||||||
|
class ZCLinkEx :
|
||||||
|
public ZtCLink<ZCEmpty, ZCLinkEx>
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||||
|
{
|
||||||
|
typedef ZtCLink<ZCEmpty, ZCEmpty> ZCLink1;
|
||||||
|
typedef ZtCLink<string , ZCEmpty> ZCLink2;
|
||||||
|
typedef ZtCLink<ZCEmpty, string > ZCLink3;
|
||||||
|
typedef ZtCLink<string , string > ZCLink4;
|
||||||
|
typedef ZCLinkEx ZCLink5;
|
||||||
|
|
||||||
|
cout<<"# ZCLink1::TypeThis -> "<<typeid(ZCLink1::TypeThis ).name()<<endl;
|
||||||
|
cout<<"# ZCLink1::TypeBase -> "<<typeid(ZCLink1::TypeBase ).name()<<endl;
|
||||||
|
cout<<"# ZCLink1::TypeChild-> "<<typeid(ZCLink1::TypeChild).name()<<endl;
|
||||||
|
cout<<"**********************************************************"<<endl;
|
||||||
|
cout<<"# ZCLink2::TypeThis -> "<<typeid(ZCLink2::TypeThis ).name()<<endl;
|
||||||
|
cout<<"# ZCLink2::TypeBase -> "<<typeid(ZCLink2::TypeBase ).name()<<endl;
|
||||||
|
cout<<"# ZCLink2::TypeChild-> "<<typeid(ZCLink2::TypeChild).name()<<endl;
|
||||||
|
cout<<"**********************************************************"<<endl;
|
||||||
|
cout<<"# ZCLink3::TypeThis -> "<<typeid(ZCLink3::TypeThis ).name()<<endl;
|
||||||
|
cout<<"# ZCLink3::TypeBase -> "<<typeid(ZCLink3::TypeBase ).name()<<endl;
|
||||||
|
cout<<"# ZCLink3::TypeChild-> "<<typeid(ZCLink3::TypeChild).name()<<endl;
|
||||||
|
cout<<"**********************************************************"<<endl;
|
||||||
|
cout<<"# ZCLink4::TypeThis -> "<<typeid(ZCLink4::TypeThis ).name()<<endl;
|
||||||
|
cout<<"# ZCLink4::TypeBase -> "<<typeid(ZCLink4::TypeBase ).name()<<endl;
|
||||||
|
cout<<"# ZCLink4::TypeChild-> "<<typeid(ZCLink4::TypeChild).name()<<endl;
|
||||||
|
cout<<"**********************************************************"<<endl;
|
||||||
|
cout<<"# ZCLink5::TypeThis -> "<<typeid(ZCLink5::TypeThis ).name()<<endl;
|
||||||
|
cout<<"# ZCLink5::TypeBase -> "<<typeid(ZCLink5::TypeBase ).name()<<endl;
|
||||||
|
cout<<"# ZCLink5::TypeChild-> "<<typeid(ZCLink5::TypeChild).name()<<endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}/*
|
||||||
|
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||||
|
|
||||||
|
}/*
|
||||||
|
namespace ZNsExam*/
|
||||||
|
|
||||||
|
}/*
|
||||||
|
namespace ZNsMain*/
|
||||||
|
|
||||||
|
|
||||||
|
int main(int AI_ArgCnt, char* APP_ArgVal[])
|
||||||
|
{
|
||||||
|
return ZNsMain::ZNsExam::Main(AI_ArgCnt, APP_ArgVal);
|
||||||
|
}/*
|
||||||
|
int main(int AI_ArgCnt, char* APP_ArgVal[])*/
|
||||||
|
|
||||||
|
|
||||||
|
/*////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
■ cygwin 컴파일
|
||||||
|
|
||||||
|
// g++ -mno-cygwin -o ZtCLink_001.exe ZtCLink_001.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
|
||||||
|
// g++ -mno-cygwin -o ZtCLink_001_D.exe ZtCLink_001.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
|
||||||
|
|
||||||
|
■ mingw 컴파일
|
||||||
|
|
||||||
|
g++.exe -o ZtCLink_001_mw.exe ZtCLink_001.cpp -I../
|
||||||
|
g++.exe -o ZtCLink_001_mw_D.exe ZtCLink_001.cpp -I../ -D_DEBUG
|
||||||
|
|
||||||
|
./ZtCLink_001_mw.exe
|
||||||
|
./ZtCLink_001_mw_D.exe
|
||||||
|
|
||||||
|
|
||||||
|
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
|
||||||
|
# date
|
||||||
|
Sun Aug 24 10:47:09 KST 2025
|
||||||
|
|
||||||
|
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
|
||||||
|
# g++ --version
|
||||||
|
g++.exe (Rev2, Built by MSYS2 project) 13.2.0
|
||||||
|
Copyright (C) 2023 Free Software Foundation, Inc.
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
|
||||||
|
■ Linux 컴파일
|
||||||
|
|
||||||
|
g++ -std=c++98 -o ZtCLink_001.exe ZtCLink_001.cpp -I../
|
||||||
|
g++ -std=c++98 -o ZtCLink_001_D.exe ZtCLink_001.cpp -I../ -D_DEBUG
|
||||||
|
|
||||||
|
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
|
||||||
|
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
|
||||||
|
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ date
|
||||||
|
Sun Aug 24 00:05:51 DST 2025
|
||||||
|
|
||||||
|
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ cat /etc/os-release
|
||||||
|
NAME="Ubuntu"
|
||||||
|
VERSION="20.04.6 LTS (Focal Fossa)"
|
||||||
|
ID=ubuntu
|
||||||
|
ID_LIKE=debian
|
||||||
|
PRETTY_NAME="Ubuntu 20.04.6 LTS"
|
||||||
|
VERSION_ID="20.04"
|
||||||
|
HOME_URL="https://www.ubuntu.com/"
|
||||||
|
SUPPORT_URL="https://help.ubuntu.com/"
|
||||||
|
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
|
||||||
|
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
|
||||||
|
VERSION_CODENAME=focal
|
||||||
|
UBUNTU_CODENAME=focal
|
||||||
|
|
||||||
|
|
||||||
|
[sauron@q381-2657 ZCppMainTest]$ cat /etc/centos-release
|
||||||
|
CentOS Linux release 7.9.2009 (Core)
|
||||||
|
|
||||||
|
[sauron@q381-2657 ZCppMainTest]$ g++ --version
|
||||||
|
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
|
||||||
|
Copyright (C) 2015 Free Software Foundation, Inc.
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
■ 실행
|
||||||
|
|
||||||
|
./ZtCLink_001.exe
|
||||||
|
./ZtCLink_001_D.exe
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////*/
|
@ -367,18 +367,66 @@ namespace ZNsMain
|
|||||||
cout<<"*****************************************************"<<endl;
|
cout<<"*****************************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
VO_ListOfStr11.MoveLinkIn
|
||||||
|
(
|
||||||
|
*VO_ListOfStr11.GetLinkPtr(1)
|
||||||
|
, *VO_ListOfStr11.GetLinkPtr(7)
|
||||||
|
, true
|
||||||
|
);
|
||||||
|
cout<<"# list11 MoveLinkIn(1th, 7th, after)"<<endl;
|
||||||
|
cout<<"# list11 IterElemLink ################"<<endl;
|
||||||
|
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
|
VO_ListOfStr11.MoveLinkIn
|
||||||
|
(
|
||||||
|
*VO_ListOfStr11.GetLinkPtr(5)
|
||||||
|
, *VO_ListOfStr11.GetLinkPtr(1)
|
||||||
|
, false
|
||||||
|
);
|
||||||
|
cout<<"# list11 MoveLinkIn(5th, 1th, before)"<<endl;
|
||||||
|
cout<<"# list11 IterElemLink ################"<<endl;
|
||||||
|
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
|
VO_ListOfStr11.MoveLinkIn
|
||||||
|
(
|
||||||
|
*VO_ListOfStr11.GetLinkPtr(6)
|
||||||
|
, *VO_ListOfStr11.GetLinkPtr(7)
|
||||||
|
, true
|
||||||
|
);
|
||||||
|
cout<<"# list11 MoveLinkIn(6th, 7th, after)"<<endl;
|
||||||
|
cout<<"# list11 IterElemLink ################"<<endl;
|
||||||
|
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
|
VO_ListOfStr11.MoveRangeIn
|
||||||
|
(
|
||||||
|
*VO_ListOfStr11.GetLinkPtr(1)
|
||||||
|
, *VO_ListOfStr11.GetLinkPtr(2)
|
||||||
|
, *VO_ListOfStr11.GetLinkPtr(7)
|
||||||
|
, true
|
||||||
|
);
|
||||||
|
cout<<"# list11 MoveRangeIn(1th, 2th, 7th, after)"<<endl;
|
||||||
|
cout<<"# list11 IterElemLink ################"<<endl;
|
||||||
|
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
|
||||||
|
|
||||||
|
|
||||||
typedef CStringList1::iterator iterator1 ;
|
typedef CStringList1::iterator iterator1 ;
|
||||||
typedef CStringList1::ZCLinkPointEx iteratorEx1;
|
//typedef CStringList1::ZCLinkPointEx iteratorEx1;
|
||||||
typedef CStringList1::ZCLinkPointC iteratorC1 ;
|
typedef CStringList1::ZCNodePointN iteratorN1 ;
|
||||||
|
|
||||||
iterator1 VO_Iter1 = VO_ListOfStr11.end();
|
iterator1 VO_Iter1 = VO_ListOfStr11.end();
|
||||||
iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
|
//iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
|
||||||
iteratorC1 VO_IterC1(VO_Iter1);
|
iteratorN1 VO_IterN1(VO_Iter1);
|
||||||
int VI_LoopCnt = 0;
|
|
||||||
|
|
||||||
__for_iter(CStringList1, VO_ListOfStr11, VO_NowIter)
|
__for_itc (CStringList1, VO_ListOfStr11, VO_NowIter)
|
||||||
{
|
{
|
||||||
cout<<"(by for_iter) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
|
cout<<"(by for_itc ) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
|
||||||
|
}
|
||||||
|
__for_it_r(CStringList1, VO_ListOfStr11, VO_NowIter)
|
||||||
|
{
|
||||||
|
cout<<"(by for_it_r) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -416,8 +464,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
|
|||||||
|
|
||||||
■ mingw 컴파일
|
■ mingw 컴파일
|
||||||
|
|
||||||
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32
|
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -Wno-unknown-pragmas
|
||||||
g++.exe -o ZtCObjList_000_mw_D.exe ZtCObjList_000.cpp -I../ -lWs2_32 -D_DEBUG
|
g++.exe -o ZtCObjList_000_mw_D.exe ZtCObjList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -Wno-unknown-pragmas -D_DEBUG
|
||||||
|
|
||||||
./ZtCObjList_000_mw.exe
|
./ZtCObjList_000_mw.exe
|
||||||
./ZtCObjList_000_mw_D.exe
|
./ZtCObjList_000_mw_D.exe
|
||||||
|
317
ZCppMainTest/c++_test_006.cpp
Normal file
317
ZCppMainTest/c++_test_006.cpp
Normal file
@ -0,0 +1,317 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include "ZCppMain/ZMainHead.H"
|
||||||
|
|
||||||
|
|
||||||
|
using namespace std ;
|
||||||
|
using namespace ZNsMain;
|
||||||
|
|
||||||
|
|
||||||
|
namespace ZNsMain
|
||||||
|
{
|
||||||
|
|
||||||
|
namespace ZNsExam
|
||||||
|
{
|
||||||
|
|
||||||
|
template<typename TType> class ZtCTest
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
template<TType TTypeVar> class ZCTypeVar
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TType MO_TypeVar;
|
||||||
|
public:
|
||||||
|
ZCTypeVar()
|
||||||
|
{
|
||||||
|
MO_TypeVar=TTypeVar;
|
||||||
|
}
|
||||||
|
public:
|
||||||
|
};/*
|
||||||
|
template<TType TTypeVar> class ZCTypeVar*/
|
||||||
|
public:
|
||||||
|
};/*
|
||||||
|
template<typename TType> class ZtCTest*/
|
||||||
|
|
||||||
|
|
||||||
|
template<typename TType, TType TTypeVar> class ZtCTest2
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TType MO_TypeVar;
|
||||||
|
public:
|
||||||
|
ZtCTest2()
|
||||||
|
{
|
||||||
|
MO_TypeVar=TTypeVar;
|
||||||
|
}
|
||||||
|
public:
|
||||||
|
};/*
|
||||||
|
template<typename TType, TType TTypeVar> class ZtCTest2*/
|
||||||
|
|
||||||
|
|
||||||
|
class ZCTypeView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
ZCTypeView()
|
||||||
|
{
|
||||||
|
cout<<"# ZCTypeView()"<<endl;
|
||||||
|
}
|
||||||
|
ZCTypeView(const ZCTypeView& rhs)
|
||||||
|
{
|
||||||
|
cout<<"ZCTypeView(const ZCTypeView& rhs)"<<endl;
|
||||||
|
}
|
||||||
|
~ZCTypeView()
|
||||||
|
{
|
||||||
|
cout<<"# ~ZCTypeView()"<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TTypChain> void OnMeetType()
|
||||||
|
{
|
||||||
|
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
template<typename TTypChain, typename TTypHelp> void OnMeetType(TTypHelp& AR_CallNo)
|
||||||
|
{
|
||||||
|
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TTypChain> void OnMeetTypeVal()
|
||||||
|
{
|
||||||
|
cout<<"* Val="<<TTypChain::GetData()<<", ETypeNo="<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
template<typename TTypChain, typename TTypHelp> void OnMeetTypeVal(TTypHelp& AR_CallNo)
|
||||||
|
{
|
||||||
|
cout<<"* Call No="<<++AR_CallNo<<" : Val="<<TTypChain::GetData()<<", ETypeNo="<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TObjtChain> void OnMeetData(TObjtChain& AR_NowChain)
|
||||||
|
{
|
||||||
|
cout<<"* Type No="<<AR_NowChain.GetNo()<<" : "<<AR_NowChain.GetData()<<endl;
|
||||||
|
}
|
||||||
|
template<typename TObjtChain> void OnMeetData(TObjtChain& AR_NowChain, int& ARI_CallNo)
|
||||||
|
{
|
||||||
|
cout<<"# CallNo="<<++ARI_CallNo<<" : Type No="<<AR_NowChain.GetNo()<<" : "<<AR_NowChain.GetData()<<endl;
|
||||||
|
}
|
||||||
|
};/*
|
||||||
|
class ZCTypeView*/
|
||||||
|
|
||||||
|
|
||||||
|
template<typename TType> class ZCShowType
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ZCShowType()
|
||||||
|
{
|
||||||
|
cout<<"# TType typename="<<typeid(TType).name()<<endl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||||
|
{
|
||||||
|
ZCShowType<int> myShowType1;
|
||||||
|
ZCShowType<double> myShowType2;
|
||||||
|
ZCShowType<ZTypLLong> myShowType3;
|
||||||
|
//ZCShowType<"abc"> myShowType4; //error
|
||||||
|
|
||||||
|
const int CI_Var1=10;
|
||||||
|
const int CI_Var2=20;
|
||||||
|
const int CI_Var3=30;
|
||||||
|
|
||||||
|
ZtCTest<int>::ZCTypeVar<CI_Var1> myintvar1 ;
|
||||||
|
ZtCTest2<int, CI_Var2> myintvar2 ;
|
||||||
|
ZtCTest2<ZTypLLong, CI_Var3> myintvar3 ;
|
||||||
|
|
||||||
|
cout<<myintvar1.MO_TypeVar<<endl;
|
||||||
|
cout<<myintvar2.MO_TypeVar<<endl;
|
||||||
|
cout<<myintvar3.MO_TypeVar<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
typedef ZtCMiniValChain
|
||||||
|
<
|
||||||
|
char , 'a' , ZtCMiniValChain<
|
||||||
|
char , 'b' , ZtCMiniValChain<
|
||||||
|
char , 'c' , ZtCMiniValChain<
|
||||||
|
//double, 10.2 , ZtCMiniValChain< // error in linux
|
||||||
|
//string, string("123") , ZtCMiniValChain< // error
|
||||||
|
long , 10 , ZtCMiniValChain<
|
||||||
|
int , 19 ,
|
||||||
|
ZCEmpty > > > >
|
||||||
|
> ZCMiniValChain; ZCTypeView VO_ZCTypeView; int VI_CallNo = 0;
|
||||||
|
|
||||||
|
cout<<"# ZCMiniValChain.size()="<<ZCMiniValChain::size()<<endl;
|
||||||
|
|
||||||
|
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterHead(VO_ZCTypeView);
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterTail(VO_ZCTypeView);
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
|
||||||
|
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo = 0));
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo = 0));
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
typedef ZtCTypeChain
|
||||||
|
<
|
||||||
|
double , ZtCTypeChain<
|
||||||
|
int , ZtCTypeChain<
|
||||||
|
wchar_t, ZtCTypeChain<
|
||||||
|
char ,
|
||||||
|
|
||||||
|
ZCEmpty > > >
|
||||||
|
> ZCTypeChain;
|
||||||
|
|
||||||
|
cout<<"tmpl chain size = "<<ZCTypeChain::Size()<<endl;
|
||||||
|
|
||||||
|
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
|
||||||
|
|
||||||
|
cout<<"@** call start : ZCTypeView(rhs) **********@"<<endl;
|
||||||
|
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterHead(VO_ZCTypeView);
|
||||||
|
cout<<"@******************************************@"<<endl;
|
||||||
|
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
|
||||||
|
cout<<"@*** call close : ZCTypeView(rhs) *********@"<<endl;
|
||||||
|
|
||||||
|
ZftIterTypeChainHead<ZCTypeChain, ZCTypeView&, int&>
|
||||||
|
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&, int&>
|
||||||
|
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||||
|
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZCTypeChain::ZtCIterChain<ZCTypeView&>::
|
||||||
|
IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
ZCTypeChain::ZtCIterChain<ZCTypeView&>::
|
||||||
|
IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
typedef ZtCDataRing<std::string> ZCDataRing;
|
||||||
|
|
||||||
|
ZCDataRing VO_CDataRing = string("123");
|
||||||
|
|
||||||
|
VO_CDataRing.AddTail(string("ABC"));
|
||||||
|
VO_CDataRing.AddTail(string("XYZ"));
|
||||||
|
|
||||||
|
cout<<"# VO_CDataRing Size = "<<VO_CDataRing.size()<<endl;
|
||||||
|
cout<<"# VO_CDataRing Data = "<<VO_CDataRing <<endl;
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
cout<<"# VO_CDataRing IterThis = "<<endl;
|
||||||
|
VO_CDataRing.IterThis(&ZftPrint<string>); cout<<endl;
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
cout<<"# VO_CDataRing IterHead = "<<endl;
|
||||||
|
VO_CDataRing.IterHead(&ZftPrint<string>); cout<<endl;
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
cout<<"# VO_CDataRing IterTail = "<<endl;
|
||||||
|
VO_CDataRing.IterTail(&ZftPrint<string>); cout<<endl;
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
cout<<"# VO_CDataRing IterThisRev = "<<endl;
|
||||||
|
VO_CDataRing.IterThisRev(&ZftPrint<string>); cout<<endl;
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
cout<<"# VO_CDataRing IterThisRev(HelpType char(',')) = "<<endl;
|
||||||
|
VO_CDataRing.IterThisRev(&ZftPrint<string, char>, char(',')); cout<<endl;
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
cout<<"# VO_CDataRing IterTail(HelpType char(',')) = "<<endl;
|
||||||
|
VO_CDataRing.IterTail (&ZftPrint<string, char>, char(',')); cout<<endl;
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
|
||||||
|
|
||||||
|
typedef ZtCDataRing<ZCTypeView> ZCViewRing;
|
||||||
|
|
||||||
|
ZCViewRing VO_ZCViewRing;
|
||||||
|
|
||||||
|
VO_ZCViewRing.AddTail();
|
||||||
|
VO_ZCViewRing.AddTail();
|
||||||
|
VO_ZCViewRing.DeleteAll();
|
||||||
|
cout<<"************************************"<<endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}/*
|
||||||
|
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||||
|
|
||||||
|
}/*
|
||||||
|
namespace ZNsExam*/
|
||||||
|
|
||||||
|
}/*
|
||||||
|
namespace ZNsMain*/
|
||||||
|
|
||||||
|
|
||||||
|
int main(int AI_ArgCnt, char* APP_ArgVal[])
|
||||||
|
{
|
||||||
|
return ZNsMain::ZNsExam::Main(AI_ArgCnt, APP_ArgVal);
|
||||||
|
}/*
|
||||||
|
int main(int AI_ArgCnt, char* APP_ArgVal[])*/
|
||||||
|
|
||||||
|
|
||||||
|
/*////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
■ cygwin 컴파일
|
||||||
|
|
||||||
|
// g++ -mno-cygwin -o c++_test_006.exe c++_test_006.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
|
||||||
|
// g++ -mno-cygwin -o c++_test_006_D.exe c++_test_006.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
|
||||||
|
|
||||||
|
■ mingw 컴파일
|
||||||
|
|
||||||
|
g++.exe -o c++_test_006_mw.exe c++_test_006.cpp -I../
|
||||||
|
g++.exe -o c++_test_006_mw_D.exe c++_test_006.cpp -I../ -D_DEBUG
|
||||||
|
|
||||||
|
./c++_test_006_mw.exe
|
||||||
|
./c++_test_006_mw_D.exe
|
||||||
|
|
||||||
|
|
||||||
|
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
|
||||||
|
# date
|
||||||
|
Sun Aug 24 10:47:09 KST 2025
|
||||||
|
|
||||||
|
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
|
||||||
|
# g++ --version
|
||||||
|
g++.exe (Rev2, Built by MSYS2 project) 13.2.0
|
||||||
|
Copyright (C) 2023 Free Software Foundation, Inc.
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
|
||||||
|
■ Linux 컴파일
|
||||||
|
|
||||||
|
g++ -std=c++98 -o c++_test_006.exe c++_test_006.cpp -I../
|
||||||
|
g++ -std=c++98 -o c++_test_006_D.exe c++_test_006.cpp -I../ -D_DEBUG
|
||||||
|
|
||||||
|
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
|
||||||
|
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
|
||||||
|
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ date
|
||||||
|
Sun Aug 24 00:05:51 DST 2025
|
||||||
|
|
||||||
|
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ cat /etc/os-release
|
||||||
|
NAME="Ubuntu"
|
||||||
|
VERSION="20.04.6 LTS (Focal Fossa)"
|
||||||
|
ID=ubuntu
|
||||||
|
ID_LIKE=debian
|
||||||
|
PRETTY_NAME="Ubuntu 20.04.6 LTS"
|
||||||
|
VERSION_ID="20.04"
|
||||||
|
HOME_URL="https://www.ubuntu.com/"
|
||||||
|
SUPPORT_URL="https://help.ubuntu.com/"
|
||||||
|
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
|
||||||
|
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
|
||||||
|
VERSION_CODENAME=focal
|
||||||
|
UBUNTU_CODENAME=focal
|
||||||
|
|
||||||
|
|
||||||
|
[sauron@q381-2657 ZCppMainTest]$ cat /etc/centos-release
|
||||||
|
CentOS Linux release 7.9.2009 (Core)
|
||||||
|
|
||||||
|
[sauron@q381-2657 ZCppMainTest]$ g++ --version
|
||||||
|
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
|
||||||
|
Copyright (C) 2015 Free Software Foundation, Inc.
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
■ 실행
|
||||||
|
|
||||||
|
./c++_test_006.exe
|
||||||
|
./c++_test_006_D.exe
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////*/
|
Reference in New Issue
Block a user