Proud::CFastList< E, ETraits > 클래스 템플릿 참조

클래스

class  const_iterator
 
class  iterator
 
class  value_type
 

Public 타입

typedef ETraits::INARGTYPE INARGTYPE
 

Public 멤버 함수

intptr_t GetCount () const throw ()
 
bool IsEmpty () const throw ()
 
E & GetHead ()
 
const E & GetHead () const
 
E & GetTail ()
 
const E & GetTail () const
 
RemoveHead ()
 
RemoveTail ()
 
void RemoveHeadNoReturn () throw ()
 
void RemoveTailNoReturn () throw ()
 
Proud::Position AddHead ()
 
Proud::Position AddHead (INARGTYPE element)
 
void AddHeadList (const CFastList *plNew)
 
Proud::Position AddTail ()
 
Proud::Position AddTail (INARGTYPE element)
 
void AddTailList (const CFastList *plNew)
 
void RemoveAll () throw ()
 
void Clear ()
 
Proud::Position GetHeadPosition () const throw ()
 
Proud::Position GetTailPosition () const throw ()
 
E & GetNext (Proud::Position &pos)
 
const E & GetNext (Proud::Position &pos) const
 
E & GetPrev (Proud::Position &pos)
 
const E & GetPrev (Proud::Position &pos) const throw ()
 
E & GetAt (Proud::Position pos)
 
const E & GetAt (Proud::Position pos) const
 
void SetAt (Proud::Position pos, INARGTYPE element)
 
Proud::Position RemoveAt (Proud::Position pos) throw ()
 
Proud::Position InsertBefore (Proud::Position pos, INARGTYPE element)
 
Proud::Position InsertAfter (Proud::Position pos, INARGTYPE element)
 
Proud::Position Find (INARGTYPE element, Proud::Position posStartAfter=NULL) const throw ()
 
Proud::Position FindIndex (intptr_t iElement) const throw ()
 
void MoveToHead (Proud::Position pos)
 
void MoveToTail (Proud::Position pos)
 
void SwapElements (Proud::Position pos1, Proud::Position pos2) throw ()
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
iterator erase (iterator iter)
 
bool Equals (const CFastList &rhs) const
 

Friends

class iterator
 
class const_iterator
 

상세한 설명

template<typename E, typename ETraits = CPNElementTraits< E >>
class Proud::CFastList< E, ETraits >

매우 빠르게 처리 되는 Linked List.

  • 내부적으로 CFastHeap 을 사용하십시오. 그러면 element를 추가/삭제 하는 비용이 줄어들것입니다. 단, Fast heap 에 명시된 주의사항을 준수하십시오.
  • CFastArray 와는 다르게 class 들을 생성자, 소멸자, 복사 대입 연산자와 함께 사용할 수 있습니다.
매개변수
Ecollection의 항목 타입.
ETraitsCollection 항목을 다루는 특성.
AllocTAllocType 값 중 하나.

멤버 함수 문서화

template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::AddHead ( )
inline

Data가 비어있는 해더를 추가한다.

반환값
새로 추가된 노드의 Position
template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::AddHead ( INARGTYPE  element)
inline

헤더를 추가합니다.

매개변수
element새로운 헤더에 넣을 Data
반환값
새로 추가된 노드의 Position
template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::AddHeadList ( const CFastList< E, ETraits > *  plNew)
inline

헤더에 새로운 list를 추가합니다.

매개변수
plNew헤더에 추가할 list
template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::AddTail ( )
inline

list의 마지막에 빈 노드를 추가한다.

반환값
새로 추가된 노드의 Position
template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::AddTail ( INARGTYPE  element)
inline

list의 마지막에 node를 추가

매개변수
element마지막 노드에 삽입을 Data
반환값
새로 추가된 노드의 Position
template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::AddTailList ( const CFastList< E, ETraits > *  plNew)
inline

List의 마지막노드에 새로운 List를 추가

매개변수
plNew추가할 List
template<typename E, typename ETraits = CPNElementTraits< E >>
iterator Proud::CFastList< E, ETraits >::begin ( )
inline

STL의 동명 메서드와 같은 역할을 한다.

template<typename E, typename ETraits = CPNElementTraits< E >>
const_iterator Proud::CFastList< E, ETraits >::begin ( ) const
inline

STL의 동명 메서드와 같은 역할을 한다.

template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::Clear ( )
inline

모든 데이터를 제거.RemoveAll()같음.

template<typename E, typename ETraits = CPNElementTraits< E >>
iterator Proud::CFastList< E, ETraits >::end ( )
inline

STL의 동명 메서드와 같은 역할을 한다.

template<typename E, typename ETraits = CPNElementTraits< E >>
const_iterator Proud::CFastList< E, ETraits >::end ( ) const
inline

STL의 동명 메서드와 같은 역할을 한다.

template<typename E, typename ETraits = CPNElementTraits< E >>
bool Proud::CFastList< E, ETraits >::Equals ( const CFastList< E, ETraits > &  rhs) const
inline

현재 CFastList 와 다른 CFastList 의 내용이 같은지 비교한다. Data를 직접 비교하여 확인한다..

매개변수
rhs비교할 CFastList
반환값
같으면 true 다른면 false 리턴
template<typename E, typename ETraits = CPNElementTraits< E >>
iterator Proud::CFastList< E, ETraits >::erase ( iterator  iter)
inline

STL의 동명 메서드와 같은 역할을 한다.

template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::Find ( INARGTYPE  element,
Proud::Position  posStartAfter = NULL 
) const throw ()
inline

Data로 node를 찾는다.

매개변수
element찾을 node의 data
posStartAfter이 Position이후부터 비교하여 찾는다.
template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::FindIndex ( intptr_t  iElement) const throw ()
inline

헤더로 부터 iElement갯수 만큼의 다음 node의 Position을 리턴

매개변수
iElement다음으로 넘어갈 노드의 갯수
반환값
node의 Position
template<typename E, typename ETraits = CPNElementTraits< E >>
E& Proud::CFastList< E, ETraits >::GetAt ( Proud::Position  pos)
inline

현재 노드의 Data 를 얻는다.

매개변수
pos현재 노드의 Position
반환값
현재 노드의 Data
template<typename E, typename ETraits = CPNElementTraits< E >>
const E& Proud::CFastList< E, ETraits >::GetAt ( Proud::Position  pos) const
inline

현재 노드의 Data 를 const 변수로 얻는다.

매개변수
pos현재 노드의 Position
반환값
현재 노드의 Data의 const 변수 리턴
template<typename E, typename ETraits = CPNElementTraits< E >>
E& Proud::CFastList< E, ETraits >::GetHead ( )
inline
반환값
list의 첫번째 data를 리턴합니다.
template<typename E, typename ETraits = CPNElementTraits< E >>
const E& Proud::CFastList< E, ETraits >::GetHead ( ) const
inline
반환값
list의 첫번째 data를 const 변수로 리턴합니다.
template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::GetHeadPosition ( ) const throw ()
inline
반환값
헤더의 Position을 리턴
template<typename E, typename ETraits = CPNElementTraits< E >>
E& Proud::CFastList< E, ETraits >::GetNext ( Proud::Position pos)
inline

인자로 넣은 Position의 다음 node Position을 얻는다.

매개변수
pos현재 Position
반환값
다음 노드의 Data를 리턴
template<typename E, typename ETraits = CPNElementTraits< E >>
const E& Proud::CFastList< E, ETraits >::GetNext ( Proud::Position pos) const
inline

인자로 넣은 Position의 다음 node Position을 얻는다.

매개변수
pos현재 Position
반환값
다음 노드의 Data를 const변수로 리턴
template<typename E, typename ETraits = CPNElementTraits< E >>
E& Proud::CFastList< E, ETraits >::GetPrev ( Proud::Position pos)
inline

인자로 넣은 Position의 전 node Position을 얻는다.

매개변수
pos현재 Position
반환값
전 노드의 Data
template<typename E, typename ETraits = CPNElementTraits< E >>
const E& Proud::CFastList< E, ETraits >::GetPrev ( Proud::Position pos) const throw ()
inline

인자로 넣은 Position의 전 node Position을 얻는다.

매개변수
pos현재 Position
반환값
전 노드의 Data를 const 변수로 리턴한다.
template<typename E, typename ETraits = CPNElementTraits< E >>
E& Proud::CFastList< E, ETraits >::GetTail ( )
inline
반환값
list의 마지막 Data를 리턴합니다.
template<typename E, typename ETraits = CPNElementTraits< E >>
const E& Proud::CFastList< E, ETraits >::GetTail ( ) const
inline
반환값
list의 마지막 Data를 const 변수로 리턴합니다.
template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::GetTailPosition ( ) const throw ()
inline
반환값
list의 마지막 노드의 Position을 리턴
template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::InsertAfter ( Proud::Position  pos,
INARGTYPE  element 
)
inline

현재 Position이 가리키는 node의 뒤에 새로운 node를 추가한다.

매개변수
pos현재 node를 가리키는 Position
element추가할 새 노드의 Data
template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::InsertBefore ( Proud::Position  pos,
INARGTYPE  element 
)
inline

현재 Position이 가리키는 node의 앞에 새로운 node를 추가한다.

매개변수
pos현재 node를 가리키는 Position
element추가할 새 노드의 Data
template<typename E, typename ETraits = CPNElementTraits< E >>
bool Proud::CFastList< E, ETraits >::IsEmpty ( ) const throw ()
inline
반환값
아무런 데이터가 없으면 true, 존재하면 false를 리턴
template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::MoveToHead ( Proud::Position  pos)
inline

현재 Position이 가리키는 node를 list의 처음으로 보낸다.

매개변수
pos현재 node의 Position
template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::MoveToTail ( Proud::Position  pos)
inline

현재 Position이 가리키는 node를 list의 마지막으로 보낸다.

매개변수
pos현재 node의 Position
template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::RemoveAll ( ) throw ()
inline

모든 데이터를 제거. Clear()와 같음.

template<typename E, typename ETraits = CPNElementTraits< E >>
Proud::Position Proud::CFastList< E, ETraits >::RemoveAt ( Proud::Position  pos) throw ()
inline

현재 Position이 가르키는 node 를 제거하고 다음 Position을 리턴해 준다.

매개변수
pos제거하고자 하는 node의 Position
반환값
제거된 Position의 다음 Position
template<typename E, typename ETraits = CPNElementTraits< E >>
E Proud::CFastList< E, ETraits >::RemoveHead ( )
inline

list 의 첫번째 Data를 list내에서 제거하고 리턴해 줍니다.

반환값
list에서 제거된 data
template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::RemoveHeadNoReturn ( ) throw ()
inline

list의 첫번째 data를 제거합니다.

template<typename E, typename ETraits = CPNElementTraits< E >>
E Proud::CFastList< E, ETraits >::RemoveTail ( )
inline

list 의 마지막 Data를 list내에서 제거하고 리턴해 줍니다.

반환값
list에서 제거된 data
template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::RemoveTailNoReturn ( ) throw ()
inline

list의 마지막 data를 제거합니다.

template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::SetAt ( Proud::Position  pos,
INARGTYPE  element 
)
inline

현재 Position이 가리키는 노드의 Data를 세팅한다.

매개변수
pos현재 노드의 Position
element세팅할 data
template<typename E, typename ETraits = CPNElementTraits< E >>
void Proud::CFastList< E, ETraits >::SwapElements ( Proud::Position  pos1,
Proud::Position  pos2 
) throw ()
inline

두 노드의 위치를 바꾼다. Elenemt를 직접 Swap해주게되면 큰 낭비가 있을 수 있음으로 두 노드에 해당 포인터 들을 바꾸어준다.

매개변수
pos1바꿀 첫번째 node의 Position
pos2바꿀 두번째 node의 Position