commit 2025-08-19 01:23 utf8 convert ZCppMain/ZtCSimList.H
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
|
||||
#ifndef __CSIMLIST_H__
|
||||
#define __CSIMLIST_H__
|
||||
@ -57,7 +57,7 @@ namespace ZNsMain
|
||||
|
||||
inline static void JoinLink(ZCLink* AP_PrevLink, ZCLink* AP_NextLink)
|
||||
{
|
||||
// <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>·<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// 두 개의 링크를 연결 상태로 만든다.
|
||||
|
||||
AP_PrevLink->mp_NextLink=AP_NextLink;
|
||||
}/*
|
||||
@ -65,9 +65,9 @@ namespace ZNsMain
|
||||
|
||||
inline static void MakeCircle(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)
|
||||
{
|
||||
// ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// <EFBFBD>̰<EFBFBD><EFBFBD><EFBFBD> ZtCSimList class template <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD>߱<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
|
||||
// 처음과 끝 링크를 연결하여 원형상태로 만든다.
|
||||
// 이것은 ZtCSimList class template 과 멤버 함수를 맞추기 위한 것으로
|
||||
// 실제적으로는 별 쓸모는 없는 것 같다.
|
||||
|
||||
AP_TailLink->mp_NextLink=AP_HeadLink;
|
||||
}/*
|
||||
@ -84,7 +84,7 @@ namespace ZNsMain
|
||||
|
||||
ZCLink(const ZCLink& rhs):mp_NextLink(0)
|
||||
{
|
||||
// TType <EFBFBD><EFBFBD> <20><><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD>ڴ<EFBFBD> <20>ݵ<EFBFBD><DDB5><EFBFBD> public <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
// TType 의 대입연산자는 반드시 public 영역에 있어야 한다.
|
||||
|
||||
mo_Type=rhs.mo_Type;
|
||||
}/*
|
||||
@ -148,8 +148,8 @@ namespace ZNsMain
|
||||
|
||||
ZCLink* GetNextPtr(TTypSize AL_FarNum) // must AL_FarNum > 0
|
||||
{
|
||||
// <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> TTypSize <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ū object <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD> <20>Լ<EFBFBD> <20><><EFBFBD>ο<EFBFBD><CEBF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
|
||||
// 이 멤버 함수는 TTypSize 가 용랑이 큰 object 라 할지라도
|
||||
// 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다.
|
||||
|
||||
ZCLink* VP_TmpLink=this;
|
||||
|
||||
@ -164,14 +164,14 @@ namespace ZNsMain
|
||||
|
||||
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TTypSize AL_FarNum) const
|
||||
{
|
||||
// TTypSize <EFBFBD><EFBFBD> object <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> AL_FarNum <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>
|
||||
// TTypSize <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȵȴ<C8B5>.
|
||||
// TTypSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
|
||||
// TTypSize 을 참조로 받으면 안된다.
|
||||
|
||||
ZCLink* VP_TmpLink=const_cast<ZCLink*>(this);
|
||||
|
||||
// <EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> <20>ڿ<EFBFBD> const keyword <EFBFBD><EFBFBD> <20>پ<EFBFBD> <20>ִµ<D6B4> <20>̰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> this pointer <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD> <20><><EFBFBD>ֵȴ<D6B5>.
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><EFBFBD><EFBFBD> <20><> this <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ȯ<EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>.
|
||||
// ZCLink* VP_TmpLink=const_cast<ZCLink*>this; <EFBFBD><EFBFBD> <20>ϸ<EFBFBD> g++ 2.96 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// 이 함수는 뒤에 const keyword 가 붙어 있는데 이것 때문에 this pointer 는 상수 포인터로 간주된다.
|
||||
// 윗줄에서 이 this 포인터를 비상수 포인터로 먼저 형변환하였다.
|
||||
// ZCLink* VP_TmpLink=const_cast<ZCLink*>this; 라 하면 g++ 2.96 에서는 에러
|
||||
|
||||
while(--AL_FarNum>=0)
|
||||
VP_TmpLink=VP_TmpLink->mp_NextLink;
|
||||
@ -331,8 +331,8 @@ namespace ZNsMain
|
||||
|
||||
for(TTypSize VL_Count=2;VL_Count<=AL_LinkSize;++VL_Count)
|
||||
{
|
||||
// VL_Count <EFBFBD><EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AL_LinkSize-1 <EFBFBD><EFBFBD> <20><>ȯ<EFBFBD>Ѵ<EFBFBD>.
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AL_LinkSize <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20>ڸ<EFBFBD> <20><> <20>ִ<EFBFBD>.
|
||||
// VL_Count 가 2 부터 시작함으로 AL_LinkSize-1 번 순환한다.
|
||||
// 그래야지 AL_LinkSize 개의 링크를 자를 수 있다.
|
||||
|
||||
mp_NoUseHeadLink=mp_NoUseHeadLink->mp_NextLink;
|
||||
mo_TypeInit(mp_NoUseHeadLink->mo_Type);
|
||||
@ -387,14 +387,14 @@ namespace ZNsMain
|
||||
/*****************/ )
|
||||
{
|
||||
// AL_FarNum > 0
|
||||
// AP_LinkOrgin <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
// AP_LinkOrgin <EFBFBD><EFBFBD><EFBFBD><EFBFBD> AL_FarNum <EFBFBD><EFBFBD>ŭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3> <20><>ũ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> APR_HeadCopy <EFBFBD><EFBFBD>,
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> APR_TailCopy <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
// AP_LinkOrgin <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ鼭 <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̴<EFBFBD>.
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> AL_FarNum + 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// <EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> MakeLinkCopy() <EFBFBD>Լ<EFBFBD><EFBFBD>ʹ<EFBFBD> <20><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> ml_UseSize <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
// AP_LinkOrgin 링크부터,
|
||||
// AP_LinkOrgin 에서 AL_FarNum 만큼 떨어진 링크까지를 복사하여
|
||||
// 복사생성된 처음 링크 포인터를 APR_HeadCopy 에,
|
||||
// 마지막 링크를 APR_TailCopy 에 대입한다.
|
||||
// AP_LinkOrgin 링크에서 그 다음 링크로 접근하면서 링크를 복사할 것이다.
|
||||
// 따라서 총 AL_FarNum + 1 개의 링크가 만들어진다.
|
||||
// 이 함수는 각 링크를 새로 생성하는 MakeLinkCopy() 함수와는 달리
|
||||
// 기존에 있는 ml_UseSize 개의 링크를 먼저 사용한다.
|
||||
|
||||
#ifdef _REENTRANT_MUTEX
|
||||
ZNsMain::CMutexSmallLock VO_CMutexSmallLock(mo_Mutex);
|
||||
@ -426,8 +426,8 @@ namespace ZNsMain
|
||||
|
||||
APR_TailCopy=mp_NoUseHeadLink;
|
||||
|
||||
// <EFBFBD><EFBFBD> <20>κп<CEBA><D0BF><EFBFBD> mp_NoUseHeadLink <EFBFBD><EFBFBD> <20>߷<EFBFBD><DFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20>ȴ<EFBFBD>.
|
||||
// <EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20>ʱ<EFBFBD>ȭ<EFBFBD>Ѵ<EFBFBD>.
|
||||
// 이 부분에서 mp_NoUseHeadLink 는 잘려나가는 마지막 링크가 된다.
|
||||
// 그러므로 다시 다음 링크로 초기화한다.
|
||||
|
||||
mp_NoUseHeadLink=mp_NoUseHeadLink->mp_NextLink;
|
||||
|
||||
@ -435,9 +435,9 @@ namespace ZNsMain
|
||||
{
|
||||
mp_NoUseTailLink=0;
|
||||
|
||||
// mp_NoUseHeadLink == 0 <EFBFBD>ε<EFBFBD> mp_NoUseTailLink !=0 <EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><>ĩ <20><><EFBFBD>ѷ<EFBFBD><D1B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ڵ带 <20>ξ<EFBFBD><CEBE><EFBFBD>.
|
||||
// mp_NoUseHeadLink == 0 인데 mp_NoUseTailLink !=0 이라면
|
||||
// 나중에 자칫 무한루프에 빠질 수 있다.
|
||||
// 따라서 위 코드를 두었다.
|
||||
}
|
||||
//if(mp_NoUseHeadLink==0)
|
||||
}
|
||||
@ -502,18 +502,18 @@ namespace ZNsMain
|
||||
ZCLink* VP_TempLink =APR_HeadLink;
|
||||
bool VB_IsHeapOver=false;
|
||||
|
||||
// bool VB_IsHeapOver <EFBFBD><EFBFBD> new <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD> <20><>
|
||||
// true <EFBFBD><EFBFBD> <20><><EFBFBD>Թ´<DEB4>. <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD> heap overflow <EFBFBD><EFBFBD> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>.
|
||||
// bool VB_IsHeapOver <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʰ<EFBFBD>
|
||||
// <EFBFBD>Ʒ<EFBFBD> for <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEB8><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20>ڵ带 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// for <EFBFBD><EFBFBD> <20>ȿ<EFBFBD> if <20><> <20>ӿ<EFBFBD><D3BF><EFBFBD> <20><> for <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD>.
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> heap over <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> <20>ڵ带
|
||||
// for <EFBFBD><EFBFBD> <20>ٱ<EFBFBD><D9B1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̴<EFBFBD>.
|
||||
// bool VB_IsHeapOver 은 new 연산자가 NULL 포인터를 반환했을 때
|
||||
// true 를 대입받는다. 이 값을 조사함으로써 heap overflow 를 처리한다.
|
||||
// bool VB_IsHeapOver 변수를 두지 않고
|
||||
// 아래 for 문에서 직접 메모리 처리를 하는 코드를 둘 수 있으나
|
||||
// for 문 안에 if 문 속에서 또 for 문을 써야 함으로
|
||||
// 가독성이 떨어질 수가 있다.
|
||||
// 그래서 heap over 에 대한 예외처리 코드를
|
||||
// for 문 바깥으로 빼려는 것이다.
|
||||
|
||||
while(--AL_MakeSize>0) // AL_MakeSize - 1 <EFBFBD><EFBFBD> <20><>ȯ
|
||||
while(--AL_MakeSize>0) // AL_MakeSize - 1 번 순환
|
||||
{
|
||||
// AL_MakeSize - 1 <EFBFBD><EFBFBD> <20><>ȯ
|
||||
// AL_MakeSize - 1 번 순환
|
||||
|
||||
VP_MakeLink = new ZCLink;
|
||||
|
||||
@ -532,15 +532,15 @@ namespace ZNsMain
|
||||
|
||||
APR_TailLink = VP_TempLink;
|
||||
|
||||
// <EFBFBD><EFBFBD> <20><> <20>̻<EFBFBD> <20>Ҵ<EFBFBD><D2B4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD>
|
||||
// <EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VL_Count <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// 메모리를 더 이상 할당할 수 없었다면
|
||||
// 이미 만들어진 VL_Count 개의 비원형 이중 링크를 지운다.
|
||||
|
||||
if(VB_IsHeapOver==true)
|
||||
{
|
||||
VP_TempLink=APR_HeadLink;
|
||||
|
||||
// <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD> APR_HeadLink <EFBFBD>ϳ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// heap <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20>ִ<EFBFBD>.
|
||||
// 이 시점에서 최소한 APR_HeadLink 하나는
|
||||
// heap 에 생성되어 있다.
|
||||
|
||||
do //////
|
||||
{
|
||||
@ -569,11 +569,11 @@ namespace ZNsMain
|
||||
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
|
||||
/**************/ )
|
||||
{
|
||||
// AP_LinkOrgin <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
// AP_LinkOrgin <EFBFBD><EFBFBD><EFBFBD><EFBFBD> AL_FarNum <EFBFBD><EFBFBD>ŭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3> <20><>ũ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> APR_HeadCopy <EFBFBD><EFBFBD>,
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> APR_TailCopy <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
// AL_FarNum > 0 , <EFBFBD><EFBFBD> AL_FarNum + 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// AP_LinkOrgin 링크부터,
|
||||
// AP_LinkOrgin 에서 AL_FarNum 만큼 떨어진 링크까지를 복사하여
|
||||
// 복사생성된 처음 링크 포인터를 APR_HeadCopy 에,
|
||||
// 마지막 링크를 APR_TailCopy 에 대입한다.
|
||||
// AL_FarNum > 0 , 총 AL_FarNum + 1 개의 링크가 만들어진다.
|
||||
|
||||
|
||||
#ifdef _REENTRANT_MUTEX
|
||||
@ -628,8 +628,8 @@ namespace ZNsMain
|
||||
|
||||
APR_TailCopy=VP_TempLink;
|
||||
|
||||
// <EFBFBD><EFBFBD> <20><> <20>̻<EFBFBD> <20>Ҵ<EFBFBD><D2B4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD>
|
||||
// <EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// 메모리를 더 이상 할당할 수 없었다면
|
||||
// 이미 만들어진 비원형 이중 링크를 지운다.
|
||||
|
||||
if(VB_IsHeapOver==true)
|
||||
{
|
||||
@ -663,14 +663,14 @@ namespace ZNsMain
|
||||
|
||||
AP_Link->mp_NextLink=0;
|
||||
|
||||
if(++ml_UseSize==1) // ml_UseSize <EFBFBD><EFBFBD> 0 <EFBFBD>϶<EFBFBD>
|
||||
if(++ml_UseSize==1) // ml_UseSize 이 0 일때
|
||||
{
|
||||
mp_NoUseHeadLink =
|
||||
mp_NoUseTailLink = AP_Link ;
|
||||
}
|
||||
else
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> <20><>ũ<EFBFBD><C5A9> mp_NoUseTailLink <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>δ<EFBFBD>.
|
||||
// 새로운 링크는 mp_NoUseTailLink 다음에 붙인다.
|
||||
|
||||
mp_NoUseTailLink->mp_NextLink=AP_Link;
|
||||
mp_NoUseTailLink=AP_Link;
|
||||
@ -692,7 +692,7 @@ namespace ZNsMain
|
||||
}
|
||||
else
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> <20><>ũ<EFBFBD><C5A9> mp_NoUseTailLink <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>δ<EFBFBD>.
|
||||
// 새로운 링크는 mp_NoUseTailLink 다음에 붙인다.
|
||||
|
||||
mp_NoUseTailLink->mp_NextLink=AP_HeadLink;
|
||||
mp_NoUseTailLink=AP_TailLink;
|
||||
@ -860,15 +860,15 @@ namespace ZNsMain
|
||||
) const
|
||||
/*###########################################################*/
|
||||
{
|
||||
// AP_CopyLink <EFBFBD><EFBFBD><EFBFBD><EFBFBD> AP_CopyLink->GetNextPrePtr(AL_FarNum)
|
||||
// <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><> AL_FarNum + 1 <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
// AP_CopyLink 부터 AP_CopyLink->GetNextPrePtr(AL_FarNum)
|
||||
// 링크까지를 복사한다. 총 AL_FarNum + 1 개의 링크가 만들어 진다.
|
||||
|
||||
ZCLink* VP_HeadLink=0;
|
||||
ZCLink* VP_TailLink=0;
|
||||
|
||||
GetCLinkHeap().GetManyLinkCopy
|
||||
(
|
||||
const_cast<ZCLink*>(AP_CopyLink), // g++ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ݵ<EFBFBD><DDB5><EFBFBD> AP_CopyLink <EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD> () <20><> <20><><EFBFBD><EFBFBD> <20><> <20><>.
|
||||
const_cast<ZCLink*>(AP_CopyLink), // g++ 에서는 반드시 AP_CopyLink 부분을 () 로 묶어 줄 것.
|
||||
AL_FarNum ,
|
||||
VP_HeadLink ,
|
||||
VP_TailLink
|
||||
@ -894,11 +894,11 @@ namespace ZNsMain
|
||||
|
||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)
|
||||
{
|
||||
// ZCLink* AP_PrevLink : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD> <20><>ũ
|
||||
// ZCLink* AP_CutLink : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD> <20><>ũ
|
||||
// ZCLink* AP_PrevLink : 삭제하려는 링크의 이전 링크
|
||||
// ZCLink* AP_CutLink : 삭제하려는 링크
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵٴ<D1B4> <20><>ȣ<EFBFBD><C8A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// 삭제하려는 링크의 위치값을 알 수 없으므로
|
||||
// 모든 링크를 삭제한다는 신호를 보낸다.
|
||||
|
||||
OnDelete(mp_HeadLink, 1, mp_HeadLink->mp_PrevLink, ml_Size);
|
||||
|
||||
@ -971,9 +971,9 @@ namespace ZNsMain
|
||||
)
|
||||
/*###################################################*/
|
||||
{
|
||||
// AP_CutHead <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ, AL_CutHeadPos <EFBFBD><EFBFBD> <20><> <20><>ġ ,AP_CutHeadPrev <EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ũ
|
||||
// AP_CutTail <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ, AL_CutTailPos <EFBFBD><EFBFBD> <20><> <20><>ġ
|
||||
// AP_CutTail <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD>Թƾ<DEBE> ¦<><C2A6> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȱ<C8B1><D7B7><EFBFBD> <20>ȴ<EFBFBD>.
|
||||
// AP_CutHead 는 삭제하려는 링크의 범위의 앞의 링크, AL_CutHeadPos 는 그 위치 ,AP_CutHeadPrev 는 그 이전 링크
|
||||
// AP_CutTail 은 삭제하려는 링크의 범위의 뒤의 링크, AL_CutTailPos 는 그 위치
|
||||
// AP_CutTail 의 이전 링크도 대입받아야 짝아 맞을 것 같지만 안그래도 된다.
|
||||
|
||||
OnDelete(AP_CutHead, AL_CutHeadPos, AP_CutTail, AL_CutTailPos);
|
||||
|
||||
@ -981,7 +981,7 @@ namespace ZNsMain
|
||||
{
|
||||
if(AP_CutTail==mp_TailLink)
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>.
|
||||
// 모든 링크를 삭제할 때.
|
||||
|
||||
mp_HeadLink=0;
|
||||
mp_TailLink=0;
|
||||
@ -992,12 +992,12 @@ namespace ZNsMain
|
||||
}
|
||||
//endif
|
||||
}
|
||||
else if(AP_CutTail==mp_TailLink) // <EFBFBD>߶<EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>.
|
||||
else if(AP_CutTail==mp_TailLink) // 잘라내려는 링크가 끝 링크를 포함할 때.
|
||||
{
|
||||
mp_TailLink=AP_CutHeadPrev;
|
||||
mp_TailLink->mp_NextLink=0;
|
||||
}
|
||||
else // <EFBFBD>߶<EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>.
|
||||
else // 잘라내려는 링크가 처음과 끝 링크를 포함하지 않을 때.
|
||||
{
|
||||
AP_CutHeadPrev->mp_NextLink=AP_CutTail->mp_NextLink;
|
||||
}
|
||||
@ -1062,8 +1062,8 @@ namespace ZNsMain
|
||||
ZCLink* AP_CutTail, TTypSize AL_CutTailPos
|
||||
/*////////////////*/ )
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؾ<EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD>̶<EFBFBD><CCB6><EFBFBD>
|
||||
// <EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
// 상속클래스에서 추가된 멤버 데이타가 링크의 삭제시 변해야 하는 값이라면
|
||||
// 이 함수를 재정의 하여 값을 조종한다.
|
||||
}
|
||||
/*
|
||||
virtual void OnDelete( ZCLink* AP_CutHead,TTypSize AL_CutHeadPos,
|
||||
@ -1071,13 +1071,13 @@ namespace ZNsMain
|
||||
//////////////////// ) */
|
||||
|
||||
|
||||
virtual void OnInsert( TTypSize AL_InsertPos , // <EFBFBD><EFBFBD><EFBFBD>ԵǴ<EFBFBD> <20><>ġ
|
||||
TTypSize AL_InsertSize, // <EFBFBD><EFBFBD><EFBFBD>ԵǴ<EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD>
|
||||
ZCLink* AP_HeadInsert // <EFBFBD><EFBFBD><EFBFBD>ԵǴ<EFBFBD> ù<><C3B9>° <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual void OnInsert( TTypSize AL_InsertPos , // 삽입되는 위치
|
||||
TTypSize AL_InsertSize, // 삽입되는 링크의 갯수
|
||||
ZCLink* AP_HeadInsert // 삽입되는 첫번째 링크의 포인터
|
||||
/*////////////////*/ )
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD>Խ<EFBFBD> <20><><EFBFBD>ؾ<EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD>̶<EFBFBD><CCB6><EFBFBD>
|
||||
// <EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
// 상속클래스에서 추가된 멤버 데이타가 링크의 삽입시 변해야 하는 값이라면
|
||||
// 이 함수를 재정의 하여 값을 조종한다.
|
||||
}
|
||||
/*
|
||||
virtual void OnInsert( TTypSize AL_InsertPos ,
|
||||
@ -1490,7 +1490,7 @@ namespace ZNsMain
|
||||
fileout.close();
|
||||
exit(1);
|
||||
}
|
||||
else if(Find(AP_Link)!=0) // AP_Link <EFBFBD><EFBFBD> this <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ű<EFBFBD><C5B0> <20><><EFBFBD>Ḯ<EFBFBD><E1B8AE>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><>ũ<EFBFBD>ΰ<EFBFBD>.
|
||||
else if(Find(AP_Link)!=0) // AP_Link 가 this 가 가리키는 연결리스트에 존재하는 링크인가.
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<"Error In 'void JoinHead(ZCLink* AP_Link)' : The list that parameter link belongs to is now list"<<std::endl;
|
||||
@ -1653,7 +1653,7 @@ namespace ZNsMain
|
||||
|
||||
void DeleteHead(TTypSize AL_DelSize)
|
||||
{
|
||||
// AL_DelSize <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><> <20>κп<CEBA><D0BF><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// AL_DelSize 개의 링크를 앞 부분에서 삭제
|
||||
|
||||
if(AL_DelSize>ml_Size) AL_DelSize=ml_Size;
|
||||
|
||||
@ -1889,8 +1889,8 @@ namespace ZNsMain
|
||||
|
||||
/*////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD> FindData(TTypeArg, ~) <EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٸ<EFBFBD>, TypeCArg <EFBFBD><EFBFBD> const TType& <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ǵǾ<C7B5> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>,
|
||||
const TType& <EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> ã<>⸦ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ְ<EFBFBD>, TType& <20><> <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> ã<>⸦ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
|
||||
■ FindData(TTypeArg, ~) 함수가 없다면, TypeCArg 이 const TType& 으로 정의되어 있는 경우,
|
||||
const TType& 에 대해서만 찾기를 수행할 수 있고, TType& 에 대해서는 찾기를 수행할 수 없다.
|
||||
|
||||
-- 2010-05-29 21:31:00
|
||||
|
||||
@ -1976,7 +1976,7 @@ namespace ZNsMain
|
||||
|
||||
// ***************************************************************** //
|
||||
|
||||
// *********************** Functor <EFBFBD>κ<EFBFBD> <20><><EFBFBD><EFBFBD> *********************** //
|
||||
// *********************** Functor 부분 시작 *********************** //
|
||||
|
||||
// ***************************************************************** //
|
||||
|
||||
@ -2053,15 +2053,15 @@ namespace ZNsMain
|
||||
|
||||
template<typename TFunctor> void IterEleCutIf(TFunctor AO_Functor)
|
||||
{
|
||||
// <EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD>Ͽ<EFBFBD> AO_Functor(ZCLink*) <EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
// <EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ũ<EFBFBD><C5A9> <20><>ȸ<EFBFBD>ϸ鼭 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20>ϱ<EFBFBD> <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>.
|
||||
// 각 링크에 대하여 AO_Functor(ZCLink*) 함수를 실행한다.
|
||||
// 이 함수를 설계한 이유는 각 링크를 순회하면서 삭제할 수 있도록 하기 위해서다.
|
||||
|
||||
ZCLink* VP_TempLink =mp_HeadLink ;
|
||||
ZCLink* VP_TempPrev =0 ;
|
||||
ZCLink* VP_TempBefore=VP_TempLink ;
|
||||
|
||||
// <EFBFBD><EFBFBD>ȸ <20><><EFBFBD>߿<EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD>尹<EFBFBD><E5B0B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>
|
||||
// ml_Size <EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>´<EFBFBD>.
|
||||
// 순회 도중에 링크가 삭제되면 노드갯수가 변할 수 있으므로
|
||||
// ml_Size 를 다른 변수에 담아 놓는다.
|
||||
|
||||
TTypSize VL_Count=ml_Size ;
|
||||
TTypSize VL_Index=1 ;
|
||||
@ -2101,10 +2101,10 @@ namespace ZNsMain
|
||||
)
|
||||
/*########################################*/
|
||||
{
|
||||
/* AP_StdLink <EFBFBD><EFBFBD><EFBFBD><EFBFBD> AL_WorkDistance <EFBFBD><EFBFBD>ŭ <20>̵<EFBFBD><CCB5>ϸ鼭
|
||||
* <EFBFBD><EFBFBD> ZCLink <EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> AO_Functor() <EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.(<28><> <20><><EFBFBD><EFBFBD> Ƚ<><C8BD><EFBFBD><EFBFBD> (AL_WorkDistance)<EFBFBD><EFBFBD><EFBFBD>밪+1)
|
||||
* AL_WorkDistance>=0 <EFBFBD≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD><CCB5>ϰ<EFBFBD>
|
||||
* AL_WorkDistance <0 <EFBFBD≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD><CCB5>Ѵ<EFBFBD>.
|
||||
/* AP_StdLink 부터 AL_WorkDistance 만큼 이동하면서
|
||||
* 각 ZCLink 에 대하여 AO_Functor() 함수를 수행한다.(총 수행 횟수는 (AL_WorkDistance)절대값+1)
|
||||
* AL_WorkDistance>=0 이면 다음으로 이동하고
|
||||
* AL_WorkDistance <0 이면 이전으로 이동한다.
|
||||
*/
|
||||
|
||||
#ifdef _DEBUG
|
||||
@ -2145,23 +2145,23 @@ namespace ZNsMain
|
||||
|
||||
// ***************************************************************
|
||||
|
||||
// *********************** Functor <EFBFBD>κ<EFBFBD> <20><> ***********************
|
||||
// *********************** Functor 부분 끝 ***********************
|
||||
|
||||
// ***************************************************************
|
||||
|
||||
|
||||
/*///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>Ҹ<EFBFBD> <20><>ȸ<EFBFBD><C8B8> <20><> <20>ִ<EFBFBD> <20>ڷ<EFBFBD> <20><><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>迭 Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
■ 순차적으로 각 원소를 순회할 수 있는 자료 구조, 즉 리스트나 배열 클래스는
|
||||
|
||||
MoveNextIter(), MovePrevIter()
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ߴ<EFBFBD>. stl <20><> <20>ݺ<EFBFBD><DDBA>ڴ<EFBFBD> <20>ʹ<EFBFBD> <20>Ϲ<EFBFBD>ȭ<EFBFBD>ϴٺ<CFB4><D9BA><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DFBB><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
|
||||
멤버를 갖는 것으로 정했다. stl 의 반복자는 너무 일반화하다보니, 성능 상의
|
||||
제약이 발생한 것 같다.
|
||||
|
||||
-- 2011-06-07 20:25:00
|
||||
|
||||
GetDataInIter() <EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0>ߴ<EFBFBD>.
|
||||
GetDataInIter() 를 추가했다.
|
||||
|
||||
-- 2011-06-12 17:12:00
|
||||
|
||||
@ -2324,12 +2324,4 @@ namespace ZNsMain
|
||||
namespace ZNsMain*/
|
||||
|
||||
|
||||
|
||||
#undef _TYPE_ARG_
|
||||
#undef _TYPENAME_CSIM_LIST_
|
||||
#undef _TYPENAME_ARGUMENT_
|
||||
#undef _TYPENAME_ARGUMENT_DEFAULT_
|
||||
|
||||
|
||||
|
||||
#endif //__CSIMLIST_H__
|
||||
|
Reference in New Issue
Block a user