commit 2025-10-16 01:58 add ZtCLinkList::MoveLinkIn() & MoveRangeIn() : ZCppMain/ZtCLinkList.H

This commit is contained in:
2025-10-16 01:58:39 +09:00
parent 023e1d8a0a
commit 4838bb74ef
4 changed files with 335 additions and 124 deletions

View File

@ -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)*/