commit 2025-10-14 09:11 ZCNodePointC => ZCNodePointN : ZCppMain/ZMainHead.H etc

This commit is contained in:
2025-10-14 09:12:02 +09:00
parent 4fc794e834
commit 65a115ff6f
6 changed files with 293 additions and 263 deletions

View File

@ -22,7 +22,7 @@ namespace ZNsMain
typedef TTypArg TypeArg ;
typedef TSize TypeSize ;
public:
class ZCNodePoint; class ZCNodePointC ;
class ZCNodePoint; class ZCNodePointN ;
public:
typedef TypeData* IterEasy ;
typedef TypeData* TypeNode ; // ZCLinkPoint::GetNode() 의 반환형.
@ -32,12 +32,17 @@ namespace ZNsMain
typedef const TypeThis TypeThisC ;
typedef const TypeData TypeDataC ;
typedef const TypeNode TypeNodeC ; // ZCLinkPoint::GetNode() const 의 반환형.
typedef const TypeIter TypeIterC ;
typedef const IterEasy IterEasyC ;
typedef ZCNodePointC iteratorC ;
/**********************************************/
typedef const ZCNodePoint ZCNodePointC;
typedef const ZCNodePoint iteratorC ;
/**********************************************/
typedef ZCNodePoint iterator ;
typedef ZCNodePointC const_iterator;
typedef ZCNodePointN const_iterator;
typedef ZCNodePointN iteratorN ;
typedef ZCNodePointN TypeIterN ;
public:
@ -87,30 +92,30 @@ namespace ZNsMain
TypeDataC& operator* () const{return *mp_Data;}
TypeDataC* operator->() const{return mp_Data;}
ZCNodePoint& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
ZCNodePoint 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 ZCNodePoint& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
const ZCNodePoint 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;}
ZCNodePoint operator+(TSize AL_AddPos) const
TypeIter operator+(TSize AL_AddPos) const
{
return ZCNodePoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
}/*
ZCNodePoint operator+(TSize AL_AddPos) const*/
TypeIter operator+(TSize AL_AddPos) const*/
bool operator == (const ZCNodePoint& rhs) const
bool operator == (ZCNodePointC& rhs) const
{ return ml_ElePos == rhs.ml_ElePos; }
bool operator != (const ZCNodePoint& rhs) const
bool operator != (ZCNodePointC& rhs) const
{ return ml_ElePos != rhs.ml_ElePos; }
bool operator > (const ZCNodePoint& rhs) const
bool operator > (ZCNodePointC& rhs) const
{ return ml_ElePos > rhs.ml_ElePos; }
bool operator >= (const ZCNodePoint& rhs) const
bool operator >= (ZCNodePointC& rhs) const
{ return ml_ElePos >= rhs.ml_ElePos; }
bool operator < (const ZCNodePoint& rhs) const
bool operator < (ZCNodePointC& rhs) const
{ return ml_ElePos < rhs.ml_ElePos; }
bool operator <= (const ZCNodePoint& rhs) const
bool operator <= (ZCNodePointC& rhs) const
{ return ml_ElePos <= rhs.ml_ElePos; }
bool operator == (TypeSize AL_Size) const
@ -131,7 +136,7 @@ namespace ZNsMain
class ZCNodePoint*/
class ZCNodePointC
class ZCNodePointN
{
private:
mutable TypeData* mp_Data ;
@ -139,7 +144,7 @@ namespace ZNsMain
const ZtCArray& mr_CArray;
public:
ZCNodePointC(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
ZCNodePointN(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
mr_CArray(AR_CArray)
/*****************************************************************/
{
@ -147,27 +152,27 @@ namespace ZNsMain
mr_CArray=&AR_CArray;
ml_ElePos=AL_ElePos ;
}/*
ZCNodePointC(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
ZCNodePointN(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
ZCNodePointC(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
ZCNodePointN(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
{
mp_Data = AR_CArray.mp_TypeArr ;
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
}/*
ZCNodePointC(ZtCArray& AR_CArray)*/
ZCNodePointN(ZtCArray& AR_CArray)*/
ZCNodePointC(const ZCNodePointC& rhs) : mr_CArray(rhs.mr_CArray)
ZCNodePointN(const ZCNodePointN& rhs) : mr_CArray(rhs.mr_CArray)
{
mp_Data = rhs.mp_TypeArr ;
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
}/*
ZCNodePointC(const ZCNodePointC& rhs)*/
ZCNodePointC(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
ZCNodePointN(const ZCNodePointN& rhs)*/
ZCNodePointN(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
{
mp_Data = rhs.mp_TypeArr ;
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
}/*
ZCNodePointC(const ZCNodePoint & rhs)*/
ZCNodePointN(const ZCNodePoint & rhs)*/
TypeSize size () const{return mr_CArray.size();}
@ -177,30 +182,27 @@ namespace ZNsMain
TypeDataC* operator->() const{return mp_Data;}
ZCNodePointC& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
ZCNodePointC operator++(int){++mp_Data; ++ml_ElePos; return *this;}
TypeIterN& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
TypeIterN operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
const ZCNodePointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
const ZCNodePointC operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
ZCNodePointC operator+(TSize AL_AddPos) const
TypeIterN operator+(TSize AL_AddPos) const
{
return ZCNodePointC(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
return ZCNodePointN(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
}/*
ZCNodePointC operator+(TSize AL_AddPos) const*/
TypeIterN operator+(TSize AL_AddPos) const*/
bool operator == (const ZCNodePointC& rhs) const
bool operator == (const ZCNodePointN& rhs) const
{ return ml_ElePos == rhs.ml_ElePos; }
bool operator != (const ZCNodePointC& rhs) const
bool operator != (const ZCNodePointN& rhs) const
{ return ml_ElePos != rhs.ml_ElePos; }
bool operator > (const ZCNodePointC& rhs) const
bool operator > (const ZCNodePointN& rhs) const
{ return ml_ElePos > rhs.ml_ElePos; }
bool operator >= (const ZCNodePointC& rhs) const
bool operator >= (const ZCNodePointN& rhs) const
{ return ml_ElePos >= rhs.ml_ElePos; }
bool operator < (const ZCNodePointC& rhs) const
bool operator < (const ZCNodePointN& rhs) const
{ return ml_ElePos < rhs.ml_ElePos; }
bool operator <= (const ZCNodePointC& rhs) const
bool operator <= (const ZCNodePointN& rhs) const
{ return ml_ElePos <= rhs.ml_ElePos; }
bool operator == (TypeSize AL_Size) const
@ -218,7 +220,7 @@ namespace ZNsMain
public:
};/*
class ZCNodePointC*/
class ZCNodePointN*/
public :
@ -465,11 +467,11 @@ namespace ZNsMain
void push_front(TypeArg AR_TypeArg){AddHead(AR_TypeArg);}
void push_back (TypeArg AR_TypeArg){AddTail(AR_TypeArg);}
Type& push_front(){return AddHead();}
Type& push_back (){return AddTail();}
TypeData& push_front(){return AddHead();}
TypeData& push_back (){return AddTail();}
/***/ ZCNodePoint begin() {return ZCNodePoint(*this);}
const ZCNodePoint begin() const{return ZCNodePoint(*this);}
TypeIter begin() {return ZCNodePoint (*this);}
TypeIterN begin() const{return ZCNodePointN(*this);}
template<typename TFunctor> void IterElement(TFunctor AO_Functor)
@ -666,101 +668,102 @@ namespace ZNsMain
///////////////////////////////////////////////////////////////////////////*/
Type* GetHeadIterEasy (){return mp_TypeArr ;}
Type* GetTailIterEasy (){return mp_TypeArr+ml_UseSize-1 ;}
IterEasyID GetHeadIterEasyID(){return (IterEasyID) mp_TypeArr ;}
IterEasyID GetTailIterEasyID(){return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
TypeData * GetHeadIterEasy () {return mp_TypeArr ;}
TypeData * GetTailIterEasy () {return mp_TypeArr+ml_UseSize-1 ;}
IterEasyID GetHeadIterEasyID() {return (IterEasyID) mp_TypeArr ;}
IterEasyID GetTailIterEasyID() {return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
const Type* GetHeadIterEasy () const{return mp_TypeArr ;}
const Type* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID) mp_TypeArr ;}
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
TypeDataC* GetHeadIterEasy () const{return mp_TypeArr ;}
TypeDataC* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
IterEasyIDc GetHeadIterEasyID() const{return (IterEasyID) mp_TypeArr ;}
IterEasyIDc GetTailIterEasyID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
void MoveNextIter(Type*& APR_CType ) const{++APR_CType ;}
void MoveNextIter(iterator& ARR_CIterator) const{++ARR_CIterator;}
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 MoveNextIter(TypeData* & APR_CType ) const{++APR_CType ;}
void MoveNextIter(iterator & ARR_CIterator) const{++ARR_CIterator;}
void MoveNextIter(IterEasyID & AI_IterEasyID) const
{ MoveNextIter((TypeData*&)AI_IterEasyID); }
void MoveNextIter(TypeDataC* & APR_CType ) const{++APR_CType ;}
void MoveNextIter(iteratorC& ARR_CIterator) const{++ARR_CIterator;}
void MoveNextIter(IterEasyIDc& AI_IterEasyID)
const{ MoveNextIter((TypeDataC*&)AI_IterEasyID); }
void MovePrevIter(Type*& APR_CType ) const{--APR_CType ;}
void MovePrevIter(iterator& ARR_CIterator) const{--ARR_CIterator;}
void MovePrevIter(IterEasyID& AI_IterEasyID) const
{ MovePrevIter((Type*&)AI_IterEasyID); }
void MovePrevIter(const Type*& APR_CType ) const{--APR_CType ;}
void MovePrevIter(const iterator& ARR_CIterator) const{--ARR_CIterator;}
void MovePrevIter(const IterEasyID& AI_IterEasyID)
const{ MovePrevIter((const Type*&)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 ;}
Type& GetDataInIter(iterator& ARR_CIterator){return *ARR_CIterator ;}
Type& GetDataInIter(IterEasyID AI_IterEasyID){return *(Type*)AI_IterEasyID;}
TypeData& GetDataInIter(TypeData * AP_CType ) {return *AP_CType ;}
TypeData& GetDataInIter(iterator & ARR_CIterator) {return *ARR_CIterator;}
TypeData& GetDataInIter(IterEasyID AI_IterEasyID)
{ return *(TypeData *)AI_IterEasyID; }
const Type& GetDataInIter(const Type* AP_CType ) const{return *AP_CType;}
const Type& GetDataInIter(const iterator& ARR_CIterator) const{return *ARR_CIterator;}
const Type& GetDataInIter(const IterEasyID AI_IterEasyID) const
{ return *(const Type*)AI_IterEasyID; }
TypeDataC& GetDataInIter(TypeDataC * AP_CType ) const{return *AP_CType;}
TypeDataC& GetDataInIter(iteratorC & ARR_CIterator) const{return *ARR_CIterator;}
TypeDataC& GetDataInIter(IterEasyIDc AI_IterEasyID) const
{ return *(TypeDataC*)AI_IterEasyID; }
Type& GetDataInIter(Type* AP_Type , TypeSize AI_FarNum)
TypeData & GetDataInIter(TypeData * AP_Type , TypeSize AI_FarNum)
{ return *(AP_Type + AI_FarNum) ; }
Type& GetDataInIter(iterator& ARR_CIterator , TypeSize AI_FarNum)
TypeData & GetDataInIter(iterator & ARR_CIterator , TypeSize AI_FarNum)
{ return *(ARR_CIterator+AI_FarNum) ; }
Type& GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
{ return GetDataInIter((Type*)ARRI_IterEasyID, AI_FarNum); }
TypeData & GetDataInIter(IterEasyID ARRI_IterEasyID , TypeSize AI_FarNum)
{ return GetDataInIter((TypeData*)ARRI_IterEasyID , AI_FarNum); }
const Type& GetDataInIter(const Type* AP_Type , TypeSize AI_FarNum) const
TypeDataC& GetDataInIter(TypeDataC * AP_Type , TypeSize AI_FarNum) const
{ return *(AP_Type + AI_FarNum); }
const Type& GetDataInIter(iterator& ARR_CIterator, TypeSize AI_FarNum) const
TypeDataC& GetDataInIter(iterator & ARR_CIterator , TypeSize AI_FarNum) const
{ return *(ARR_CIterator+AI_FarNum); }
const Type& GetDataInIter(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const
{ return GetDataInIter((const Type*)ARRI_IterEasyID, AI_FarNum); }
TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID , TypeSize AI_FarNum) const
{ return GetDataInIter((TypeDataC*)ARRI_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);}
TypeData * ItHEasy() {return mp_TypeArr ;}
TypeData * 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);}
TypeDataC* ItHEasy() const{return mp_TypeArr ;}
TypeDataC* ItTEasy() const{return mp_TypeArr+ml_UseSize-1 ;}
IterEasyIDc ItHID () const{return (IterEasyID) mp_TypeArr ;}
IterEasyIDc 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 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(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); }
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); }
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);}
TypeData & ItD(TypeData * AP_Type ) {return GetDataInIter(AP_Type );}
TypeData & ItD(iterator & ARR_CIterator ) {return GetDataInIter(ARR_CIterator );}
TypeData & ItD(IterEasyID ARRI_IterEasyID ) {return GetDataInIter(ARRI_IterEasyID );}
TypeData & ItD(TypeData * AP_Type , TypeSize AI_FarNum) {return GetDataInIter(AP_Type , AI_FarNum );}
TypeData & ItD(iterator & ARR_CIterator , TypeSize AI_FarNum) {return GetDataInIter(ARR_CIterator , AI_FarNum);}
TypeData & 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);}
TypeDataC& ItD(TypeDataC * AP_Type ) const{return GetDataInIter(AP_Type );}
TypeDataC& ItD(iteratorC & ARR_CIterator ) const{return GetDataInIter(ARR_CIterator );}
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID ) const{return GetDataInIter(ARRI_IterEasyID );}
TypeDataC& ItD(TypeDataC * AP_Type , TypeSize AI_FarNum) const{return GetDataInIter(AP_Type );}
TypeDataC& ItD(iteratorC & ARR_CIterator , TypeSize AI_FarNum) const{return GetDataInIter(ARR_CIterator , AI_FarNum);}
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const{return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
public:
};/*