Torque::List< Type > Class Template Reference

#include <tList.h>

List of all members.


Detailed Description


template<typename Type> class Torque::List< Type >

A list template class.

A classic list class similar to the STL list class. The list class supports fast insert and erase operations, but slow dynamic access. The list is circular and the iterator supports iterating past the end() or rend() in order to loop around.


Public Types

typedef PrivatePersistPersistentIter
 A PersistentIter is used for the special cases where you need to store an iterator for efficiency reasons.
typedef Type ValueType
typedef Type & Reference
typedef const Type & ConstReference
typedef _Iterator< Type, LinkIterator
typedef _Iterator< const Type,
const Link
ConstIterator
typedef S32 DifferenceType
typedef U32 SizeType

Public Member Functions

 List ()
 ~List ()
 List (const List &p)
U32 getSize () const
 Return the number of elements.
void resize (U32)
 Set the list size.
void clear ()
 Empty the List.
bool isEmpty () const
 Node count == 0?
Iterator insert (U32 index, const Type &=Type())
 Insert new element at the given index.
Iterator insert (Iterator, const Type &=Type())
 Insert at the given iter.
Iterator pushFront (const Type &=Type())
 Insert at first element.
Iterator pushBack (const Type &=Type())
 Insert after the last element.
void erase (U32)
 Preserves element order.
void erase (Iterator)
 Preserves element order.
void popFront ()
 Remove the first element.
void popBack ()
 Remove the last element.
Iterator begin ()
 _Iterator to first element
ConstIterator begin () const
 _Iterator to first element
Iterator end ()
 _Iterator to last element + 1
ConstIterator end () const
 _Iterator to last element + 1
Iterator rbegin ()
 _Iterator to first element - 1
ConstIterator rbegin () const
 _Iterator to first element - 1
Iterator rend ()
 _Iterator to last element
ConstIterator rend () const
 _Iterator to last element
Type & first ()
 First element.
const Type & first () const
 First element.
Type & last ()
 Last element.
const Type & last () const
 Last element.
void operator= (const List &p)
Type & operator[] (U32)
const Type & operator[] (U32) const

Private Member Functions

Link_node (U32 index) const
void _destroy ()

Private Attributes

Link _head
U32 _size

Classes

class  _Iterator
struct  Link
struct  Node
struct  PrivatePersist


Member Typedef Documentation

template<typename Type>
typedef PrivatePersist* Torque::List< Type >::PersistentIter

A PersistentIter is used for the special cases where you need to store an iterator for efficiency reasons.

The _Iterator class handles the conversion to/from PersistentIter.

Note:
The data in the node this points to could go away, so only use these in cases where you control the allocation/deallocation of the nodes in the list.

template<typename Type>
typedef Type Torque::List< Type >::ValueType

template<typename Type>
typedef Type& Torque::List< Type >::Reference

template<typename Type>
typedef const Type& Torque::List< Type >::ConstReference

template<typename Type>
typedef _Iterator<Type,Link> Torque::List< Type >::Iterator

template<typename Type>
typedef _Iterator<const Type,const Link> Torque::List< Type >::ConstIterator

template<typename Type>
typedef S32 Torque::List< Type >::DifferenceType

template<typename Type>
typedef U32 Torque::List< Type >::SizeType


Constructor & Destructor Documentation

template<class Type>
Torque::List< Type >::List (  ) 

template<class Type>
Torque::List< Type >::~List (  ) 

template<class Type>
Torque::List< Type >::List ( const List< Type > &  p  ) 


Member Function Documentation

template<class Type>
U32 Torque::List< Type >::getSize (  )  const [inline]

Return the number of elements.

template<class Type>
void Torque::List< Type >::resize ( U32   ) 

Set the list size.

template<class Type>
void Torque::List< Type >::clear (  ) 

Empty the List.

template<class Type>
bool Torque::List< Type >::isEmpty (  )  const [inline]

Node count == 0?

template<class Type>
List< Type >::Iterator Torque::List< Type >::insert ( U32  index,
const Type &  = Type() 
) [inline]

Insert new element at the given index.

template<class Type>
List< Type >::Iterator Torque::List< Type >::insert ( Iterator  ,
const Type &  = Type() 
)

Insert at the given iter.

template<class Type>
List< Type >::Iterator Torque::List< Type >::pushFront ( const Type &  = Type()  )  [inline]

Insert at first element.

template<class Type>
List< Type >::Iterator Torque::List< Type >::pushBack ( const Type &  = Type()  )  [inline]

Insert after the last element.

template<class Type>
void Torque::List< Type >::erase ( U32   )  [inline]

Preserves element order.

template<class Type>
void Torque::List< Type >::erase ( Iterator   ) 

Preserves element order.

template<class Type>
void Torque::List< Type >::popFront (  )  [inline]

Remove the first element.

template<class Type>
void Torque::List< Type >::popBack (  )  [inline]

Remove the last element.

template<class Type>
List< Type >::Iterator Torque::List< Type >::begin (  )  [inline]

_Iterator to first element

template<class Type>
List< Type >::ConstIterator Torque::List< Type >::begin (  )  const [inline]

_Iterator to first element

template<class Type>
List< Type >::Iterator Torque::List< Type >::end (  )  [inline]

_Iterator to last element + 1

template<class Type>
List< Type >::ConstIterator Torque::List< Type >::end (  )  const [inline]

_Iterator to last element + 1

template<class Type>
List< Type >::Iterator Torque::List< Type >::rbegin (  )  [inline]

_Iterator to first element - 1

template<class Type>
List< Type >::ConstIterator Torque::List< Type >::rbegin (  )  const [inline]

_Iterator to first element - 1

template<class Type>
List< Type >::Iterator Torque::List< Type >::rend (  )  [inline]

_Iterator to last element

template<class Type>
List< Type >::ConstIterator Torque::List< Type >::rend (  )  const [inline]

_Iterator to last element

template<class Type>
Type & Torque::List< Type >::first (  )  [inline]

First element.

template<class Type>
const Type & Torque::List< Type >::first (  )  const [inline]

First element.

template<class Type>
Type & Torque::List< Type >::last (  )  [inline]

Last element.

template<class Type>
const Type & Torque::List< Type >::last (  )  const [inline]

Last element.

template<class Type>
void Torque::List< Type >::operator= ( const List< Type > &  p  ) 

template<class Type>
Type & Torque::List< Type >::operator[] ( U32   )  [inline]

template<class Type>
const Type & Torque::List< Type >::operator[] ( U32   )  const [inline]

template<class Type>
List< Type >::Link * Torque::List< Type >::_node ( U32  index  )  const [private]

template<class Type>
void Torque::List< Type >::_destroy (  )  [private]


Member Data Documentation

template<typename Type>
Link Torque::List< Type >::_head [private]

template<typename Type>
U32 Torque::List< Type >::_size [private]