commit 2025-10-06 11:48 add GetLinkOpt() : ZCppMain/ZtCObjList.H
This commit is contained in:
@ -800,6 +800,9 @@ namespace ZNsMain
|
||||
typedef typename TFeeeHeap::
|
||||
template ZtCBody<ZtCObjList> ZCFreeHeap;
|
||||
public:
|
||||
typedef ZtCObjOpt<ZCLink > ZCLinkOpt;
|
||||
typedef ZtCObjOpt<TypeData> ZCDataOpt;
|
||||
public:
|
||||
|
||||
|
||||
class ZCLink : public TypeAlloc
|
||||
@ -1509,6 +1512,26 @@ namespace ZNsMain
|
||||
const ZCLink* GetTailLinkPtr() const*/
|
||||
|
||||
|
||||
ZCLinkOpt GetHeadLinkOpt(){return ZCLinkOpt(mp_HeadLink);}
|
||||
ZCLinkOpt GetTailLinkOpt()
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCLinkOpt(0);
|
||||
|
||||
return ZCLinkOpt(*mp_HeadLink->mp_PrevLink);
|
||||
}/*
|
||||
ZCLinkOpt GetTailLinkOpt()*/
|
||||
|
||||
const ZCLinkOpt GetHeadLinkOpt() const{return ZCLinkOpt(mp_HeadLink);}
|
||||
const ZCLinkOpt GetTailLinkOpt() const
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCLinkOpt(0);
|
||||
|
||||
return ZCLinkOpt(*mp_HeadLink->mp_PrevLink);
|
||||
}/*
|
||||
const ZCLinkOpt GetTailLinkOpt()*/
|
||||
|
||||
|
||||
|
||||
Type& operator[](TypeSize AL_Index)
|
||||
{
|
||||
// [] 에 들어가는 AL_Index 은 1 부터 시작하는 첨자이다.
|
||||
@ -1690,21 +1713,6 @@ namespace ZNsMain
|
||||
|
||||
ZCLink* GetLinkPtr(TypeSize AL_Index)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
fileout<<"Error In 'ZCLink* GetLinkPtr(TypeSize AL_Index)' : Parameter is bad index("<<AL_Index<<")"<<std::endl;
|
||||
fileout.close();
|
||||
|
||||
::exit(1); return 0;
|
||||
}/*
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)*/
|
||||
|
||||
#endif // _DEBUG
|
||||
|
||||
TypeSize VI_LeftDistance =AL_Index-1 ;
|
||||
TypeSize VI_RightDistance=ml_LinkSize-AL_Index+1;
|
||||
TypeSize VI_ShortDistance=
|
||||
@ -1716,21 +1724,6 @@ namespace ZNsMain
|
||||
|
||||
const ZCLink* GetLinkPtr(TypeSize AL_Index) const // or 'ZCLink const * const GetLinkPtr(TypeSize AL_Index) const'
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
fileout<<"Error In 'const ZCLink* GetLinkPtr(TypeSize AL_Index) const' : Parameter is bad index("<<AL_Index<<")"<<std::endl;
|
||||
fileout.close();
|
||||
|
||||
::exit(1); return 0;
|
||||
}/*
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)*/
|
||||
|
||||
#endif // _DEBUG
|
||||
|
||||
TypeSize VI_LeftDistance = AL_Index-1 ;
|
||||
TypeSize VI_RightDistance= ml_LinkSize -AL_Index+1;
|
||||
TypeSize VI_ShortDistance=
|
||||
@ -1741,6 +1734,24 @@ namespace ZNsMain
|
||||
const ZCLink* GetLinkPtr(TypeSize AL_Index) const*/
|
||||
|
||||
|
||||
ZCLinkOpt GetLinkOpt(TypeSize AL_Index)
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCLinkOpt(0);
|
||||
|
||||
return ZCLinkOpt(*GetLinkPtr(AL_Index));
|
||||
}/*
|
||||
ZCLinkOpt GetLinkOpt(TypeSize AL_Index)*/
|
||||
|
||||
const ZCLinkOpt GetLinkOpt(TypeSize AL_Index) const
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCLinkOpt(0);
|
||||
|
||||
return ZCLinkOpt(*GetLinkPtr(AL_Index));
|
||||
}/*
|
||||
const ZCLinkOpt GetLinkOpt(TypeSize AL_Index) const*/
|
||||
|
||||
|
||||
|
||||
ZtCObjList& DeleteAll()
|
||||
{
|
||||
if(mp_HeadLink==0) return *this;
|
||||
@ -2240,6 +2251,55 @@ namespace ZNsMain
|
||||
const Type& GetTailData() const*/
|
||||
|
||||
|
||||
ZCDataOpt GetHeadDataOpt()
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCDataOpt(0);
|
||||
|
||||
return ZCDataOpt(**mp_HeadLink);
|
||||
}/*
|
||||
ZCDataOpt GetHeadDataOpt()*/
|
||||
ZCDataOpt GetTailDataOpt()
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCDataOpt(0);
|
||||
|
||||
return ZCDataOpt(**mp_HeadLink->mp_PrevLink);
|
||||
}/*
|
||||
ZCDataOpt GetTailDataOpt()*/
|
||||
|
||||
|
||||
const ZCDataOpt GetHeadDataOpt() const
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCDataOpt(0);
|
||||
|
||||
return ZCDataOpt(**mp_HeadLink);
|
||||
}/*
|
||||
const ZCDataOpt GetHeadDataOpt() const*/
|
||||
const ZCDataOpt GetTailDataOpt() const
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCDataOpt(0);
|
||||
|
||||
return ZCDataOpt(**mp_HeadLink->mp_PrevLink);
|
||||
}/*
|
||||
const ZCDataOpt GetTailDataOpt() const*/
|
||||
|
||||
|
||||
ZCDataOpt GetDataOpt(TypeSize AI_Index)
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCDataOpt(0);
|
||||
|
||||
return ZCDataOpt( GetLinkPtr(AI_Index)->GetData() );
|
||||
}/*
|
||||
ZCDataOpt GetDataOpt(TypeSize AI_Index)*/
|
||||
|
||||
const ZCDataOpt GetDataOpt(TypeSize AI_Index) const
|
||||
{
|
||||
if(mp_HeadLink==0) return ZCDataOpt(0);
|
||||
|
||||
return ZCDataOpt( GetLinkPtr(AI_Index)->GetData() );
|
||||
}/*
|
||||
const ZCDataOpt GetDataOpt(TypeSize AI_Index) const*/
|
||||
|
||||
|
||||
Type& front(){return GetHeadData();}
|
||||
Type& back (){return GetTailData();}
|
||||
|
||||
|
Reference in New Issue
Block a user