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 __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<> 등에서 사용하는 반복자로 사용하는 자료형이다. 반복자를 사용할 때마
|
||||
|
Reference in New Issue
Block a user