commit 2025-10-16 01:58 add ZtCLinkList::MoveLinkIn() & MoveRangeIn() : ZCppMain/ZtCLinkList.H
This commit is contained in:
@ -7939,7 +7939,8 @@ namespace ZNsMain
|
||||
{
|
||||
// AR_MoveLink 를 떼어 내고, AR_MoveLink 의 앞뒤 링크를 연결.
|
||||
|
||||
ZCLinkFake VO_FakeHead; ZCLinkFake VO_FakeTail;
|
||||
ZCLinkFake VO_FakeHead ;
|
||||
ZCLinkFake VO_FakeTail ;
|
||||
|
||||
ZCLink* VP_FakeHead =
|
||||
reinterpret_cast<ZCLink*>(&VO_FakeHead ) ;
|
||||
@ -8043,12 +8044,12 @@ namespace ZNsMain
|
||||
{ return MoveLinkIn(AR_MoveLink, ZCLinkOpt(0), false); }
|
||||
|
||||
|
||||
ZtCBaseList& MoveRangeIn /*////////////////////////////////////////*/
|
||||
ZtCBaseList& MoveRangeIn /*////////////////////////////////////////////*/
|
||||
(
|
||||
ZCLink& AR_MoveHead , ZCLink& AR_MoveTail ,
|
||||
ZCLink& AR_StdLink , bool AB_After
|
||||
)
|
||||
/*#################################################################*/
|
||||
/*#####################################################################*/
|
||||
{
|
||||
// AR_MoveHead ~ AR_MoveTail 밖에 AR_StdLink 이 있어야 한다.
|
||||
// AR_MoveHead 이 AR_MoveTail 위에 와서는 안 된다.
|
||||
@ -8067,7 +8068,8 @@ namespace ZNsMain
|
||||
{
|
||||
// AR_MoveHead~AR_MoveTail 를 떼어 내고, 그 앞뒤 링크를 연결.
|
||||
|
||||
ZCLinkFake VO_FakeHead; ZCLinkFake VO_FakeTail;
|
||||
ZCLinkFake VO_FakeHead ;
|
||||
ZCLinkFake VO_FakeTail ;
|
||||
|
||||
ZCLink* VP_FakeHead =
|
||||
reinterpret_cast<ZCLink*>(&VO_FakeHead ) ;
|
||||
@ -8141,12 +8143,12 @@ namespace ZNsMain
|
||||
}
|
||||
return *this; /*::::::::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
ZtCBaseList& MoveRangeIn ////////////////////////////////////////////
|
||||
ZtCBaseList& MoveRangeIn ////////////////////////////////////////////////
|
||||
(
|
||||
ZCLink& AR_MoveHead, ZCLink& AR_MoveTail,
|
||||
ZCLink& AR_StdLink , bool AB_After
|
||||
)
|
||||
###################################################################*/
|
||||
#######################################################################*/
|
||||
|
||||
|
||||
void SendOutHead(ZCLink& AR_CutLink, TypeThis& rhs) // AP_CutLink 를 잘라서 rhs 의 앞에 연결한다.
|
||||
|
@ -2576,45 +2576,225 @@ namespace ZNsMain
|
||||
TypeThis& SwapLink(ZCLink& AR_LinkOne, ZCLink& AR_LinkTwo)*/
|
||||
|
||||
|
||||
TypeThis& MoveLinkIn(ZCLink& AR_MoveLink, ZCLink& AR_StdLink, bool AB_After)
|
||||
{
|
||||
if(size()<=1 || &AR_MoveLink==&AR_StdLink){return *this;}
|
||||
|
||||
const bool CB_NeedFakeLink = ////////////////////////////////////
|
||||
(
|
||||
&AR_MoveLink==mp_HeadLink || &AR_MoveLink==mp_TailLink ||
|
||||
&AR_StdLink ==mp_HeadLink || &AR_StdLink ==mp_TailLink
|
||||
) ;
|
||||
if(CB_NeedFakeLink) /////////////////////////////////////////////
|
||||
{
|
||||
// AR_MoveLink 를 떼어 내고, AR_MoveLink 의 앞뒤 링크를 연결.
|
||||
|
||||
ZCLink VO_FakeHead ;
|
||||
ZCLink VO_FakeTail ;
|
||||
|
||||
ZCLink* VP_FakeHead = &VO_FakeHead ;
|
||||
ZCLink* VP_FakeTail = &VO_FakeTail ;
|
||||
|
||||
ZCLink::JoinLink( VP_FakeHead, mp_HeadLink ) ;
|
||||
ZCLink::JoinLink( mp_TailLink, VP_FakeTail ) ;
|
||||
|
||||
ZCLink* VP_MoveNext = AR_MoveLink.mp_NextLink;
|
||||
ZCLink* VP_MovePrev = AR_MoveLink.mp_PrevLink;
|
||||
|
||||
ZCLink::JoinLink(VP_MovePrev, VP_MoveNext);
|
||||
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
AR_MoveLink 떼어 내기 완료.
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||
|
||||
ZCLink* VP_StdNext = AR_StdLink .mp_NextLink;
|
||||
ZCLink* VP_StdPrev = AR_StdLink .mp_PrevLink;
|
||||
|
||||
if(AB_After)
|
||||
{
|
||||
ZCLink::JoinLink(&AR_StdLink , &AR_MoveLink);
|
||||
ZCLink::JoinLink(&AR_MoveLink, VP_StdNext );
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLink::JoinLink( VP_StdPrev , &AR_MoveLink);
|
||||
ZCLink::JoinLink(&AR_MoveLink, &AR_StdLink );
|
||||
}
|
||||
mp_HeadLink = VP_FakeHead->mp_NextLink;
|
||||
mp_TailLink = VP_FakeTail->mp_PrevLink;
|
||||
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
|
||||
return *this; /***************************/
|
||||
}/*
|
||||
const bool CB_NeedFakeLink = ////////////////////////////////////
|
||||
(
|
||||
&AR_MoveLink==mp_HeadLink || &AR_MoveLink==mp_TailLink ||
|
||||
&AR_StdLink ==mp_HeadLink || &AR_StdLink ==mp_TailLink
|
||||
) ;
|
||||
if(CB_NeedFakeLink) ///////////////////////////////////////////*/
|
||||
|
||||
|
||||
if( AB_After && AR_MoveLink.mp_PrevLink==&AR_StdLink)
|
||||
{ return *this; }
|
||||
if(!AB_After && AR_MoveLink.mp_NextLink==&AR_StdLink)
|
||||
{ return *this; }
|
||||
/*:::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||
|
||||
|
||||
ZCLink* VP_MoveNext = AR_MoveLink.mp_NextLink;
|
||||
ZCLink* VP_MovePrev = AR_MoveLink.mp_PrevLink;
|
||||
|
||||
ZCLink::JoinLink( VP_MovePrev, VP_MoveNext ) ;
|
||||
|
||||
ZCLink* VP_StdNext = AR_StdLink .mp_NextLink;
|
||||
ZCLink* VP_StdPrev = AR_StdLink .mp_PrevLink;
|
||||
|
||||
if(AB_After)
|
||||
{
|
||||
ZCLink::JoinLink(&AR_StdLink , &AR_MoveLink);
|
||||
ZCLink::JoinLink(&AR_MoveLink, VP_StdNext );
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLink::JoinLink( VP_StdPrev , &AR_MoveLink);
|
||||
ZCLink::JoinLink(&AR_MoveLink, &AR_StdLink );
|
||||
}
|
||||
return *this; /*::::::::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
TypeThis& MoveLinkIn(ZCLink& AR_MoveLink, ZCLink& AR_StdLink, bool AB_After)*/
|
||||
|
||||
|
||||
TypeThis& MoveLinkIn(ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt, bool AB_After)
|
||||
{
|
||||
ZCLink* VP_LinkStd = AO_StdOpt.Raw();
|
||||
|
||||
if(VP_LinkStd==0)
|
||||
{
|
||||
if(AB_After)
|
||||
{ VP_LinkStd = mp_HeadLink; AB_After=false; }
|
||||
else{ VP_LinkStd = mp_TailLink; AB_After=true ; }
|
||||
}/*
|
||||
if(VP_LinkStd==0)*/
|
||||
|
||||
return MoveLinkIn(AR_MoveLink, *VP_LinkStd, AB_After);
|
||||
}/*
|
||||
TypeThis& MoveLinkIn(ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt, bool AB_After)*/
|
||||
|
||||
|
||||
TypeThis& MoveLinkAfter (ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt)
|
||||
{
|
||||
if(&AR_MoveLink==AO_StdOpt.Raw()){return *this;}
|
||||
|
||||
if(size()<=1){return *this;} AddLinkAfter
|
||||
( AO_StdOpt.Raw(), CutLink(&AR_MoveLink) ) ;
|
||||
|
||||
return *this; /**************************/
|
||||
}/*
|
||||
TypeThis& MoveLinkAfter (ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt)*/
|
||||
{ return MoveLinkIn(AR_MoveLink, AO_StdOpt, true ); }
|
||||
TypeThis& MoveLinkBefore(ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt)
|
||||
{ return MoveLinkIn(AR_MoveLink, AO_StdOpt, false); }
|
||||
|
||||
TypeThis& MoveLinkHead(ZCLink& AR_MoveLink)
|
||||
{ return MoveLinkIn(AR_MoveLink, ZCLinkOpt(0), true ); }
|
||||
TypeThis& MoveLinkTail(ZCLink& AR_MoveLink)
|
||||
{ return MoveLinkIn(AR_MoveLink, ZCLinkOpt(0), false); }
|
||||
|
||||
|
||||
TypeThis& MoveRangeIn /*///////////////////////////////////////////////*/
|
||||
(
|
||||
ZCLink& AR_MoveHead , ZCLink& AR_MoveTail ,
|
||||
ZCLink& AR_StdLink , bool AB_After
|
||||
)
|
||||
/*#####################################################################*/
|
||||
{
|
||||
if(&AR_MoveLink==AO_StdOpt.Raw()){return *this;}
|
||||
// AR_MoveHead ~ AR_MoveTail 밖에 AR_StdLink 이 있어야 한다.
|
||||
// AR_MoveHead 이 AR_MoveTail 위에 와서는 안 된다.
|
||||
|
||||
if(size()<=1){return *this;} AddLinkBefore
|
||||
( AO_StdOpt.Raw(), CutLink(&AR_MoveLink) ) ;
|
||||
if(size() <= 1 ){return *this;}
|
||||
if(&AR_MoveHead == &AR_StdLink){return *this;}
|
||||
if(&AR_MoveTail == &AR_StdLink){return *this;}
|
||||
|
||||
return *this; /**************************/
|
||||
}/*
|
||||
TypeThis& MoveLinkBefore(ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt)*/
|
||||
|
||||
TypeThis& MoveLinkHead(ZCLink& AR_MoveLink) /*::::::::::::::::::::*/
|
||||
const bool CB_NeedFakeLink = ////////////////////////////////////
|
||||
(
|
||||
&AR_MoveHead==mp_HeadLink || &AR_MoveHead==mp_TailLink ||
|
||||
&AR_MoveTail==mp_HeadLink || &AR_MoveTail==mp_TailLink ||
|
||||
&AR_StdLink ==mp_HeadLink || &AR_StdLink ==mp_TailLink
|
||||
) ;
|
||||
if(CB_NeedFakeLink) /////////////////////////////////////////////
|
||||
{
|
||||
if(&AR_MoveLink==mp_HeadLink){return *this;}
|
||||
// AR_MoveHead~AR_MoveTail 를 떼어 내고, 그 앞뒤 링크를 연결.
|
||||
|
||||
if(size()<=1){return *this;} AddLinkAfter
|
||||
( 0, CutLink(&AR_MoveLink) ) ;
|
||||
return *this; /**************************/
|
||||
}/*
|
||||
TypeThis& MoveLinkHead(ZCLink& AR_MoveLink) ::::::::::::::::::::::*/
|
||||
TypeThis& MoveLinkTail(ZCLink& AR_MoveLink) /*::::::::::::::::::::*/
|
||||
ZCLink VO_FakeHead ;
|
||||
ZCLink VO_FakeTail ;
|
||||
|
||||
ZCLink* VP_FakeHead = &VO_FakeHead ;
|
||||
ZCLink* VP_FakeTail = &VO_FakeTail ;
|
||||
|
||||
ZCLink::JoinLink( VP_FakeHead, mp_HeadLink ) ;
|
||||
ZCLink::JoinLink( mp_TailLink, VP_FakeTail ) ;
|
||||
|
||||
ZCLink* VP_MoveNext = AR_MoveTail.mp_NextLink;
|
||||
ZCLink* VP_MovePrev = AR_MoveHead.mp_PrevLink;
|
||||
|
||||
ZCLink::JoinLink(VP_MovePrev, VP_MoveNext);
|
||||
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
AR_MoveHead~AR_MoveTail 떼어 내기 완료.
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||
|
||||
ZCLink* VP_StdNext = AR_StdLink .mp_NextLink;
|
||||
ZCLink* VP_StdPrev = AR_StdLink .mp_PrevLink;
|
||||
|
||||
if(AB_After)
|
||||
{
|
||||
if(&AR_MoveLink==mp_TailLink){return *this;}
|
||||
ZCLink::JoinLink(&AR_StdLink , &AR_MoveHead);
|
||||
ZCLink::JoinLink(&AR_MoveTail, VP_StdNext );
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLink::JoinLink( VP_StdPrev , &AR_MoveHead);
|
||||
ZCLink::JoinLink(&AR_MoveTail, &AR_StdLink );
|
||||
}
|
||||
mp_HeadLink = VP_FakeHead->mp_NextLink;
|
||||
mp_TailLink = VP_FakeTail->mp_PrevLink;
|
||||
|
||||
if(size()<=1){return *this;} AddLinkBefore
|
||||
( 0, CutLink(&AR_MoveLink) ) ;
|
||||
return *this; /**************************/
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
|
||||
return *this; /***************************/
|
||||
}/*
|
||||
TypeThis& MoveLinkTail(ZCLink& AR_MoveLink) ::::::::::::::::::::::*/
|
||||
const bool CB_NeedFakeLink = ////////////////////////////////////
|
||||
(
|
||||
&AR_MoveHead==mp_HeadLink || &AR_MoveHead==mp_TailLink ||
|
||||
&AR_MoveTail==mp_HeadLink || &AR_MoveTail==mp_TailLink ||
|
||||
&AR_StdLink ==mp_HeadLink || &AR_StdLink ==mp_TailLink
|
||||
) ;
|
||||
if(CB_NeedFakeLink) ///////////////////////////////////////////*/
|
||||
|
||||
|
||||
if( AB_After && AR_MoveHead.mp_PrevLink==&AR_StdLink)
|
||||
{ return *this; }
|
||||
if(!AB_After && AR_MoveTail.mp_NextLink==&AR_StdLink)
|
||||
{ return *this; }
|
||||
/*:::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||
|
||||
|
||||
ZCLink* VP_MoveNext = AR_MoveTail.mp_NextLink;
|
||||
ZCLink* VP_MovePrev = AR_MoveHead.mp_PrevLink;
|
||||
|
||||
ZCLink::JoinLink( VP_MovePrev, VP_MoveNext ) ;
|
||||
|
||||
ZCLink* VP_StdNext = AR_StdLink .mp_NextLink;
|
||||
ZCLink* VP_StdPrev = AR_StdLink .mp_PrevLink;
|
||||
|
||||
if(AB_After)
|
||||
{
|
||||
ZCLink::JoinLink(&AR_StdLink , &AR_MoveHead);
|
||||
ZCLink::JoinLink(&AR_MoveTail, VP_StdNext );
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLink::JoinLink( VP_StdPrev , &AR_MoveHead);
|
||||
ZCLink::JoinLink(&AR_MoveTail, &AR_StdLink );
|
||||
}
|
||||
return *this; /*::::::::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
TypeThis& MoveRangeIn ///////////////////////////////////////////////////
|
||||
(
|
||||
ZCLink& AR_MoveHead, ZCLink& AR_MoveTail,
|
||||
ZCLink& AR_StdLink , bool AB_After
|
||||
)
|
||||
#######################################################################*/
|
||||
|
||||
|
||||
TypeThis& SendRangeIn ///////////////////////////////////////////////////
|
||||
|
@ -2223,6 +2223,11 @@ namespace ZNsMain
|
||||
}/*
|
||||
void SendOutBefore(ZCLink& AR_CutLink, TypeThis& rhs, ZCLinkOpt AO_StdOpt)*/
|
||||
|
||||
void SendOutHead(ZCLink& AR_CutLink, TypeThis& rhs) // AP_CutLink 를 잘라서 rhs 의 앞에 연결한다.
|
||||
{ SendOutAfter (AR_CutLink, rhs, ZCLinkOpt(0)); }
|
||||
void SendOutTail(ZCLink& AR_CutLink, TypeThis& rhs) // AP_CutLink 를 잘라서 rhs 의 뒤에 연결한다.
|
||||
{ SendOutBefore(AR_CutLink, rhs, ZCLinkOpt(0)); }
|
||||
|
||||
|
||||
ZtCObjList& SwapLinkNext(ZCLink& AR_LinkPrev)
|
||||
{
|
||||
@ -2415,10 +2420,13 @@ namespace ZNsMain
|
||||
{
|
||||
// AR_MoveLink 를 떼어 내고, AR_MoveLink 의 앞뒤 링크를 연결.
|
||||
|
||||
ZCLinkFake VO_FakeHead; ZCLinkFake VO_FakeTail;
|
||||
ZCLinkFake VO_FakeHead ;
|
||||
ZCLinkFake VO_FakeTail ;
|
||||
|
||||
ZCLink* VP_FakeHead=reinterpret_cast<ZCLink*>(&VO_FakeHead);
|
||||
ZCLink* VP_FakeTail=reinterpret_cast<ZCLink*>(&VO_FakeTail);
|
||||
ZCLink* VP_FakeHead =
|
||||
reinterpret_cast<ZCLink*>( &VO_FakeHead) ;
|
||||
ZCLink* VP_FakeTail =
|
||||
reinterpret_cast<ZCLink*>( &VO_FakeTail) ;
|
||||
|
||||
ZCLink::JoinLink( VP_FakeHead, mp_HeadLink ) ;
|
||||
ZCLink::JoinLink( mp_TailLink, VP_FakeTail ) ;
|
||||
@ -2517,18 +2525,12 @@ namespace ZNsMain
|
||||
{ return MoveLinkIn(AR_MoveLink, ZCLinkOpt(0), false); }
|
||||
|
||||
|
||||
void SendOutHead(ZCLink& AR_CutLink, TypeThis& rhs) // AP_CutLink 를 잘라서 rhs 의 앞에 연결한다.
|
||||
{ SendOutAfter (AR_CutLink, rhs, ZCLinkOpt(0)); }
|
||||
void SendOutTail(ZCLink& AR_CutLink, TypeThis& rhs) // AP_CutLink 를 잘라서 rhs 의 뒤에 연결한다.
|
||||
{ SendOutBefore(AR_CutLink, rhs, ZCLinkOpt(0)); }
|
||||
|
||||
|
||||
ZtCObjList& MoveRangeIn /*/////////////////////////////////////////*/
|
||||
ZtCObjList& MoveRangeIn /*/////////////////////////////////////////////*/
|
||||
(
|
||||
ZCLink& AR_MoveHead , ZCLink& AR_MoveTail ,
|
||||
ZCLink& AR_StdLink , bool AB_After
|
||||
)
|
||||
/*#################################################################*/
|
||||
/*#####################################################################*/
|
||||
{
|
||||
// AR_MoveHead ~ AR_MoveTail 밖에 AR_StdLink 이 있어야 한다.
|
||||
// AR_MoveHead 이 AR_MoveTail 위에 와서는 안 된다.
|
||||
@ -2547,10 +2549,13 @@ namespace ZNsMain
|
||||
{
|
||||
// AR_MoveHead~AR_MoveTail 를 떼어 내고, 그 앞뒤 링크를 연결.
|
||||
|
||||
ZCLinkFake VO_FakeHead; ZCLinkFake VO_FakeTail;
|
||||
ZCLinkFake VO_FakeHead ;
|
||||
ZCLinkFake VO_FakeTail ;
|
||||
|
||||
ZCLink* VP_FakeHead=reinterpret_cast<ZCLink*>(&VO_FakeHead);
|
||||
ZCLink* VP_FakeTail=reinterpret_cast<ZCLink*>(&VO_FakeTail);
|
||||
ZCLink* VP_FakeHead =
|
||||
reinterpret_cast<ZCLink*>( &VO_FakeHead) ;
|
||||
ZCLink* VP_FakeTail =
|
||||
reinterpret_cast<ZCLink*>( &VO_FakeTail) ;
|
||||
|
||||
ZCLink::JoinLink( VP_FakeHead, mp_HeadLink ) ;
|
||||
ZCLink::JoinLink( mp_TailLink, VP_FakeTail ) ;
|
||||
@ -2619,12 +2624,12 @@ namespace ZNsMain
|
||||
}
|
||||
return *this; /*::::::::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
ZtCObjList& MoveRangeIn /////////////////////////////////////////////
|
||||
ZtCObjList& MoveRangeIn /////////////////////////////////////////////////
|
||||
(
|
||||
ZCLink& AR_MoveHead, ZCLink& AR_MoveTail,
|
||||
ZCLink& AR_StdLink , bool AB_After
|
||||
)
|
||||
###################################################################*/
|
||||
#######################################################################*/
|
||||
|
||||
|
||||
|
||||
|
@ -110,28 +110,28 @@ namespace ZNsMain
|
||||
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||
{
|
||||
ZTypLong VI_CallCnt = 0 ;
|
||||
ZCLinkDataList VO_CDataLis1;
|
||||
ZCLinkDataList VO_CDataLis2;
|
||||
ZCLinkStrList VO_CStrLis20;
|
||||
ZCStrLinkOpt VO_StrLinkOpt = VO_CDataLis1.GetObjOpt(1);
|
||||
ZTypLong VI_CallCnt =0 ;
|
||||
ZCLinkDataList VO_CDataList1;
|
||||
ZCLinkDataList VO_CDataList2;
|
||||
ZCLinkStrList VO_CStrLis20 ;
|
||||
ZCStrLinkOpt VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
|
||||
|
||||
cout<<"# VO_StrLinkOpt.has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||
cout<<"# VO_StrLinkOpt.bool() ="<<bool(VO_StrLinkOpt) <<endl;
|
||||
|
||||
VO_CDataLis1.AddTail()().GetData()=string("123");
|
||||
VO_CDataLis1.AddTail()().GetData()=string("ABC");
|
||||
VO_CDataLis1.AddTail()().GetData()=string("xyz");
|
||||
VO_CDataList1.AddTail()().GetData()=string("123");
|
||||
VO_CDataList1.AddTail()().GetData()=string("ABC");
|
||||
VO_CDataList1.AddTail()().GetData()=string("xyz");
|
||||
|
||||
VO_CDataLis2.AddTail()().GetData()=string("Z01");
|
||||
VO_CDataLis2.AddTail()().GetData()=string("Z02");
|
||||
VO_CDataLis2.AddTail()().GetData()=string("Z03");
|
||||
VO_CDataList2.AddTail()().GetData()=string("Z01");
|
||||
VO_CDataList2.AddTail()().GetData()=string("Z02");
|
||||
VO_CDataList2.AddTail()().GetData()=string("Z03");
|
||||
|
||||
VO_CStrLis20.AddTail()()=string("__1");
|
||||
VO_CStrLis20.AddTail()()=string("__2");
|
||||
VO_CStrLis20.AddTail()()=string("__3");
|
||||
|
||||
VO_StrLinkOpt = VO_CDataLis1.GetObjOpt(1);
|
||||
VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
|
||||
|
||||
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
|
||||
@ -143,7 +143,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
if(VO_StrLinkOpt.has_value())*/
|
||||
|
||||
VO_StrLinkOpt = VO_CDataLis1.GetTailOpt();
|
||||
VO_StrLinkOpt = VO_CDataList1.GetTailOpt();
|
||||
|
||||
cout<<"# VO_StrLinkOpt.GetTailOpt() : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||
cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl;
|
||||
@ -157,123 +157,123 @@ namespace ZNsMain
|
||||
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
VO_CDataLis1.JoinHead(VO_CDataLis2);
|
||||
VO_CDataList1.JoinHead(VO_CDataList2);
|
||||
|
||||
cout<<"# after VO_CDataLis1.JoinHead(VO_CDataLis2)"<<endl;
|
||||
cout<<"# after VO_CDataList1.JoinHead(VO_CDataList2)"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_CDataLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
VO_CDataLis2 = VO_CDataLis1 ;
|
||||
VO_CDataList2 = VO_CDataList1 ;
|
||||
|
||||
cout<<"# after VO_CDataLis2 = VO_CDataLis1"<<endl;
|
||||
cout<<"# after VO_CDataList2 = VO_CDataList1"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_CDataLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_CDataLis1.IterElement(&AppendEach);
|
||||
VO_CDataList1.IterElement(&AppendEach);
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_CDataLis1.SendRangeOutAfter
|
||||
VO_CDataList1.SendRangeOutAfter
|
||||
(
|
||||
VO_CDataLis1.GetObjOpt(1).value()
|
||||
, VO_CDataLis1.GetObjOpt(2).value()
|
||||
VO_CDataList1.GetObjOpt(1).value()
|
||||
, VO_CDataList1.GetObjOpt(2).value()
|
||||
, 2
|
||||
, VO_CDataLis2
|
||||
, VO_CDataLis2.GetObjOpt(1)
|
||||
, VO_CDataList2
|
||||
, VO_CDataList2.GetObjOpt(1)
|
||||
) ;
|
||||
cout<<"# after VO_CDataLis1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
|
||||
cout<<"# after VO_CDataList1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_CDataLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_CDataLis2.SendRangeOutBefore
|
||||
VO_CDataList2.SendRangeOutBefore
|
||||
(
|
||||
VO_CDataLis2.GetObjOpt(7).value()
|
||||
, VO_CDataLis2.GetObjOpt(8).value()
|
||||
VO_CDataList2.GetObjOpt(7).value()
|
||||
, VO_CDataList2.GetObjOpt(8).value()
|
||||
, 2
|
||||
, VO_CDataLis1
|
||||
, VO_CDataLis1.GetObjOpt(1)
|
||||
, VO_CDataList1
|
||||
, VO_CDataList1.GetObjOpt(1)
|
||||
) ;
|
||||
cout<<"# after VO_CDataLis2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
|
||||
cout<<"# after VO_CDataList2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_CDataLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_CDataLis2.CopyThis( RR(VO_CDataLis1) );
|
||||
cout<<"# after VO_CDataLis2.CopyThis( RR(VO_CDataLis1) )"<<endl;
|
||||
VO_CDataList2.CopyThis( RR(VO_CDataList1) );
|
||||
cout<<"# after VO_CDataList2.CopyThis( RR(VO_CDataList1) )"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_CDataLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_CDataLis1.SwapLink
|
||||
(VO_CDataLis1.HeadRef(), VO_CDataLis1.HeadRef(1));
|
||||
cout<<"# after VO_CDataLis1.SwapLink(1th, 2th)"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.SwapLink
|
||||
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(1));
|
||||
cout<<"# after VO_CDataList1.SwapLink(1th, 2th)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_CDataLis1.SwapLink
|
||||
(VO_CDataLis1.HeadRef(), VO_CDataLis1.HeadRef(11));
|
||||
cout<<"# after VO_CDataLis1.SwapLink(1th, 12th)"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.SwapLink
|
||||
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(11));
|
||||
cout<<"# after VO_CDataList1.SwapLink(1th, 12th)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_CDataLis1.SwapLink
|
||||
(VO_CDataLis1.HeadRef(11), VO_CDataLis1.HeadRef(10));
|
||||
cout<<"# after VO_CDataLis1.SwapLink(12th, 11th)"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.SwapLink
|
||||
(VO_CDataList1.HeadRef(11), VO_CDataList1.HeadRef(10));
|
||||
cout<<"# after VO_CDataList1.SwapLink(12th, 11th)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_CDataLis1.MoveLinkTail
|
||||
(VO_CDataLis1.HeadRef());
|
||||
cout<<"# after VO_CDataLis1.MoveLinkTail(1th)"<<endl;
|
||||
VO_CDataLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.MoveLinkTail
|
||||
(VO_CDataList1.HeadRef());
|
||||
cout<<"# after VO_CDataList1.MoveLinkTail(1th)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
_FOR_ITER_EASY_START0_C(ZCLinkDataList, VO_CDataLis1, VH_NowIter, i)
|
||||
_FOR_ITER_EASY_START0_C(ZCLinkDataList, VO_CDataList1, VH_NowIter, i)
|
||||
{
|
||||
cout<<"# list1 const: "<<(i+1)<<" "<<VO_CDataLis1.ItD(VH_NowIter).GetData()<<endl;
|
||||
cout<<"# list1 const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
|
||||
}
|
||||
_FOR_ITER_EASY_CLOSE0_C(ZCLinkDataList, VO_CDataLis1, VH_NowIter, i)
|
||||
_FOR_ITER_EASY_CLOSE0_C(ZCLinkDataList, VO_CDataList1, VH_NowIter, i)
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
_FOR_ITER_EASY_START0_RC(ZCLinkDataList, VO_CDataLis1, VH_NowIter, i)
|
||||
_FOR_ITER_EASY_START0_RC(ZCLinkDataList, VO_CDataList1, VH_NowIter, i)
|
||||
{
|
||||
cout<<"# list1 rev const: "<<(i+1)<<" "<<VO_CDataLis1.ItD(VH_NowIter).GetData()<<endl;
|
||||
cout<<"# list1 rev const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
|
||||
}
|
||||
_FOR_ITER_EASY_CLOSE0_RC(ZCLinkDataList, VO_CDataLis1, VH_NowIter, i)
|
||||
_FOR_ITER_EASY_CLOSE0_RC(ZCLinkDataList, VO_CDataList1, VH_NowIter, i)
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
__for_it(ZCLinkDataList, VO_CDataLis1, VH_NowIter)
|
||||
__for_it(ZCLinkDataList, VO_CDataList1, VH_NowIter)
|
||||
{
|
||||
cout<<"# list1 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter).GetData()<<endl;
|
||||
}
|
||||
@ -290,6 +290,30 @@ namespace ZNsMain
|
||||
_FOR_ITER_EASY_CLOSE0_C(ZCLinkStrList, 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;
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||
|
Reference in New Issue
Block a user