commit 2025-10-04 09:54 IterElemLink() in ZtCBaseList : ZCppMain/ZMainHead.H

This commit is contained in:
2025-10-04 09:54:37 +09:00
parent 4543f13d9f
commit 3bfc5f8355
4 changed files with 146 additions and 2 deletions

View File

@ -6256,6 +6256,47 @@ namespace ZNsMain
###############################################################################*/
template<typename TFunctor> void IterElemLink(TFunctor AO_Functor)
{
ZCLink* VP_LoopLink=mp_HeadLink;
__for0(TypeSize, i, ml_LinkSize)
{
ZtCTypeData<TFunctor>::
GetObjRef(AO_Functor)( *VP_LoopLink );
VP_LoopLink = VP_LoopLink->mp_NextLink ;
}/*
__for0(TypeSize, i, ml_LinkSize)*/
}/*
template<typename TFunctor> void IterElemLink(TFunctor AO_Functor) */
template<typename TFunctor, typename TTypeHelp>
void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp)
{
typedef ZNsMain::
ZtCCheckRef<TTypeHelp> ZCCheckRef;
ZCLink* VP_LoopLink=mp_HeadLink;
__for0(TypeSize, i, ml_LinkSize)
{
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
(
*VP_LoopLink, ZCCheckRef::PassData(AO_TypeHelp)
);
////////////////////////////////////////////
VP_LoopLink = VP_LoopLink->mp_NextLink ;
}/*
__for0(TypeSize, i, ml_LinkSize)*/
}/*
template<typename TFunctor, typename TTypeHelp>
void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */
ZCLink* GetHeadLinkPtr(){return mp_HeadLink;}
ZCLink* GetTailLinkPtr(){return mp_TailLink;}

View File

@ -934,7 +934,7 @@ namespace ZNsMain
ZCLink* VP_TmpLink =this;
while(VL_LoopIndex++ < AL_Distance)
VP_TmpLink = VP_TmpLink->mp_PrevtLink ;
VP_TmpLink = VP_TmpLink->mp_PrevLink ;
return VP_TmpLink;
}/*
@ -959,7 +959,7 @@ namespace ZNsMain
ZCLink* VP_TmpLink = const_cast<ZCLink*>(this) ;
while(VL_LoopIndex++ < AL_Distance)
VP_TmpLink = VP_TmpLink->mp_PrevtLink ;
VP_TmpLink = VP_TmpLink->mp_PrevLink ;
return VP_TmpLink;
}/*
@ -2560,6 +2560,46 @@ namespace ZNsMain
###############################################################################*/
template<typename TFunctor> void IterElemLink(TFunctor AO_Functor)
{
ZCLink* VP_LoopLink=mp_HeadLink;
__for0(TypeSize, i, ml_LinkSize)
{
ZtCTypeData<TFunctor>::
GetObjRef(AO_Functor)( *VP_LoopLink );
VP_LoopLink = VP_LoopLink->mp_NextLink ;
}/*
__for0(TypeSize, i, ml_LinkSize)*/
}/*
template<typename TFunctor> void IterElemLink(TFunctor AO_Functor) */
template<typename TFunctor, typename TTypeHelp>
void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp)
{
typedef ZNsMain::
ZtCCheckRef<TTypeHelp> ZCCheckRef;
ZCLink* VP_LoopLink=mp_HeadLink;
__for0(TypeSize, i, ml_LinkSize)
{
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
(
*VP_LoopLink, ZCCheckRef::PassData(AO_TypeHelp)
);
////////////////////////////////////////////
VP_LoopLink = VP_LoopLink->mp_NextLink ;
}/*
__for0(TypeSize, i, ml_LinkSize)*/
}/*
template<typename TFunctor, typename TTypeHelp>
void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */
template<typename TFunctor> void IterElemLink ///////////////////////
(
ZCLink& AR_StdLink ,

View File

@ -2198,6 +2198,46 @@ namespace ZNsMain
template<typename TFunctor> void IterElemDel(TFunctor AO_Functor) */
template<typename TFunctor> void IterElemLink(TFunctor AO_Functor)
{
ZCLink* VP_LoopLink=mp_HeadLink;
__for0(TypeSize, i, ml_LinkSize)
{
ZtCTypeData<TFunctor>::
GetObjRef(AO_Functor)( *VP_LoopLink );
VP_LoopLink = VP_LoopLink->mp_NextLink ;
}/*
__for0(TypeSize, i, ml_LinkSize)*/
}/*
template<typename TFunctor> void IterElemLink(TFunctor AO_Functor) */
template<typename TFunctor, typename TTypeHelp>
void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp)
{
typedef ZNsMain::
ZtCCheckRef<TTypeHelp> ZCCheckRef;
ZCLink* VP_LoopLink=mp_HeadLink;
__for0(TypeSize, i, ml_LinkSize)
{
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
(
*VP_LoopLink, ZCCheckRef::PassData(AO_TypeHelp)
);
////////////////////////////////////////////
VP_LoopLink = VP_LoopLink->mp_NextLink ;
}/*
__for0(TypeSize, i, ml_LinkSize)*/
}/*
template<typename TFunctor, typename TTypeHelp>
void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */
template<typename TFunctor> void IterElemLink ///////////////////////
(
ZCLink* AP_StdLink ,

View File

@ -33,6 +33,9 @@ namespace ZNsMain
typedef ZtCObjList
<CStringBase, CCStringBase&> CStringList2 ;
typedef CStringList1::ZCLink ZCLink1;
typedef CStringList2::ZCLink ZCLink2;
static void ShowDataInNode(const CStringBase& AR_Data)
{
@ -40,6 +43,23 @@ namespace ZNsMain
}/*
static void ShowDataInNode(const CStringBase& AR_Data)*/
static void ShowNode1(ZCLink1& AR_CLink)
{
cout<<"* Node Prev : "<<*(AR_CLink-1)<<endl;
cout<<"* Node Curr : "<<*(AR_CLink )<<endl;
cout<<"* Node Next : "<<*(AR_CLink+1)<<endl;
}/*
static void ShowNode1(ZCLink1& AR_CLink)*/
static void ShowNode2(ZCLink2& AR_CLink)
{
cout<<"* Node Prev : "<<*(AR_CLink-1)<<endl;
cout<<"* Node Curr : "<<*(AR_CLink )<<endl;
cout<<"* Node Next : "<<*(AR_CLink+1)<<endl;
}/*
static void ShowNode2(ZCLink2& AR_CLink)*/
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{
CStringBase VO_CStringBase ;
@ -209,6 +229,9 @@ namespace ZNsMain
cout<<"# list10 capacity : " <<VO_ListOfStr10.capacity ()<<endl;
cout<<"# list11 capacity : " <<VO_ListOfStr11.capacity ()<<endl;
cout<<"# list10 IterElemLink"<<endl;
VO_ListOfStr10.IterElemLink(&ShowNode1);
return 0;
}/*