commit 2025-10-14 16:38 add _FOR_ITER_EASY_START0 와 _FOR_ITER_EASY_CLOSE0 in ZCppMain/ZMainHead.H
This commit is contained in:
@ -470,32 +470,65 @@ using namespace std;
|
|||||||
#define __forD1(i, LoopCount) for(i=1; i<=LoopCount; ++i)
|
#define __forD1(i, LoopCount) for(i=1; i<=LoopCount; ++i)
|
||||||
|
|
||||||
|
|
||||||
#define __for_i( IterClass, IterObj, IterVar) \
|
#define __for_i( IterType, IterObj, IterVar) \
|
||||||
for ( \
|
for ( \
|
||||||
typename IterClass:: iterator \
|
typename IterType:: iterator \
|
||||||
IterVar=IterObj.begin(); \
|
IterVar=IterObj.begin(); \
|
||||||
IterVar<=IterObj.size(); ++IterVar \
|
IterVar<=IterObj.size(); ++IterVar \
|
||||||
)
|
)
|
||||||
#define __for_ic(IterClass, IterObj, IterVar) \
|
#define __for_ic(IterType, IterObj, IterVar) \
|
||||||
for ( \
|
for ( \
|
||||||
typename IterClass::const_iterator \
|
typename IterType::const_iterator \
|
||||||
IterVar=IterObj.cbegin(); \
|
IterVar=IterObj.cbegin(); \
|
||||||
IterVar<=IterObj.size(); ++IterVar \
|
IterVar<=IterObj.size(); ++IterVar \
|
||||||
)
|
)
|
||||||
|
|
||||||
#define __for_i_r( IterClass, IterObj, IterVar) \
|
#define __for_i_r( IterType, IterObj, IterVar) \
|
||||||
for ( \
|
for ( \
|
||||||
typename IterClass:: iterator \
|
typename IterType:: iterator \
|
||||||
IterVar=IterObj.end(); \
|
IterVar=IterObj.end(); \
|
||||||
IterVar>0; --IterVar \
|
IterVar>0; --IterVar \
|
||||||
)
|
)
|
||||||
#define __for_i_rc(IterClass, IterObj, IterVar) \
|
#define __for_i_rc(IterType, IterObj, IterVar) \
|
||||||
for ( \
|
for ( \
|
||||||
typename IterClass::const_iterator \
|
typename IterType::const_iterator \
|
||||||
IterVar=IterObj.cend(); \
|
IterVar=IterObj.cend(); \
|
||||||
IterVar>0; --IterVar \
|
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
|
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
|
■ typedef class CIterEasy{} *IterEasyID
|
||||||
|
|
||||||
CObjList<> 등에서 사용하는 반복자로 사용하는 자료형이다. 반복자를 사용할 때마
|
CObjList<> 등에서 사용하는 반복자로 사용하는 자료형이다. 반복자를 사용할 때마
|
||||||
|
Reference in New Issue
Block a user