commit 2025-10-14 16:38 add _FOR_ITER_EASY_START0 와 _FOR_ITER_EASY_CLOSE0 in ZCppMain/ZMainHead.H

This commit is contained in:
2025-10-14 16:38:21 +09:00
parent 15d8ee63ad
commit 342446fdce

View File

@ -470,32 +470,65 @@ using namespace std;
#define __forD1(i, LoopCount) for(i=1; i<=LoopCount; ++i)
#define __for_i( IterClass, IterObj, IterVar) \
#define __for_i( IterType, IterObj, IterVar) \
for ( \
typename IterClass:: iterator \
IterVar=IterObj.begin(); \
IterVar<=IterObj.size(); ++IterVar \
typename IterType:: iterator \
IterVar=IterObj.begin(); \
IterVar<=IterObj.size(); ++IterVar \
)
#define __for_ic(IterClass, IterObj, IterVar) \
#define __for_ic(IterType, IterObj, IterVar) \
for ( \
typename IterClass::const_iterator \
IterVar=IterObj.cbegin(); \
IterVar<=IterObj.size(); ++IterVar \
typename IterType::const_iterator \
IterVar=IterObj.cbegin(); \
IterVar<=IterObj.size(); ++IterVar \
)
#define __for_i_r( IterClass, IterObj, IterVar) \
#define __for_i_r( IterType, IterObj, IterVar) \
for ( \
typename IterClass:: iterator \
IterVar=IterObj.end(); \
typename IterType:: iterator \
IterVar=IterObj.end(); \
IterVar>0; --IterVar \
)
#define __for_i_rc(IterClass, IterObj, IterVar) \
#define __for_i_rc(IterType, IterObj, IterVar) \
for ( \
typename IterClass::const_iterator \
IterVar=IterObj.cend(); \
typename IterType::const_iterator \
IterVar=IterObj.cend(); \
IterVar>0; --IterVar \
)
#define _FOR_ITER_EASY_START0(IterType, IterObj, IterVar, SizeVar) \
{ \
typedef IterType::TypeSize IterTypeSize ; \
ZNsMain::IterEasyID IterVar = IterObj.ItHID(); \
\
for(IterTypeSize SizeVar=0; SizeVar<IterObj.size(); ++SizeVar){
#define _FOR_ITER_EASY_CLOSE0(IterType, IterObj, IterVar, SizeVar) \
IterObj.ItNext(IterVar); } \
}
/*######################################################################
■ _FOR_ITER_EASY_START0 와 _FOR_ITER_EASY_CLOSE0 예제.
typedef ZtCObjList<int> CObjList;
CObjList myList;
myList.AddTail(1);
myList.AddTail(2);
myList.AddTail(3);
_FOR_ITER_EASY_START0(CObjList, myList, VH_NowIter, i)
{
cout<<"* list >> "<<myList.ItD(VH_NowIter)<<endl;
}
_FOR_ITER_EASY_CLOSE0(CObjList, myList, VH_NowIter, i)
-- 2025-10-14 16:34
######################################################################*/
namespace ZNsMain
{
@ -694,6 +727,8 @@ namespace ZNsMain
/*///////////////////////////////////////////////////////////////////////////////
■ cf) _FOR_ITER_EASY_START0 , _FOR_ITER_EASY_CLOSE0 -- 2025-10-14 16:36
■ typedef class CIterEasy{} *IterEasyID
CObjList<> 등에서 사용하는 반복자로 사용하는 자료형이다. 반복자를 사용할 때마