| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# csList< T > Class Template Reference

A lightweight double-linked list template. More...

`#include <csutil/list.h>`

List of all members.

## Public Member Functions
| csList (const csList< T > &other)
| Copy constructor.
| csList ()
| Default constructor.
void | Delete (Iterator &it)
| Remove specific item by iterator.
void | DeleteAll ()
| Empty an list.
T & | Front () const
| Return first element of the list.
void | InsertAfter (Iterator &it, const T &item)
| Insert an item after the item the iterator is set to.
void | InsertBefore (Iterator &it, const T &item)
| Insert an item before the item the iterator is set to.
bool | IsEmpty () const
T & | Last () const
| Return last element of the list.
void | MoveAfter (const Iterator &it, const Iterator &item)
| Move an item (as iterator) after the item the iterator is set to.
void | MoveBefore (const Iterator &it, const Iterator &item)
| Move an item (as iterator) before the item the iterator is set to.
csList & | operator= (const csList< T > &other)
| Assignment, shallow copy.
bool | PopBack ()
| Deletes the last element of the list.
bool | PopFront ()
| Deletes the first element of the list.
Iterator | PushBack (const T &item)
| Add an item last in list. Copy T into the listdata.
Iterator | PushFront (const T &item)
| Add an item first in list. Copy T into the listdata.
| ~csList ()
| Destructor.
## Protected Member Functions
void | Delete (csListElement *el)
| Remove specific item by explicit ref.
## Friends
class | Iterator
## Classes
struct | csListElement
| Template which describes the data stored in the linked list For example a list of ints uses csListElement<int>. More...
class | Iterator
| Iterator for the list. More...

## Detailed Description

### template<class T>
class csList< T >

A lightweight double-linked list template.

Copies the elements into the list for storages. Assumes that type T supports copy construction.

Definition at line 34 of file list.h.

## Constructor & Destructor Documentation

template<class T>

csList< T >::csList | ( |  | ) | `[inline]`

Default constructor.

Definition at line 62 of file list.h.

template<class T>

csList< T >::csList | ( | const csList< T > & | other | ) | `[inline]`

Copy constructor.

Definition at line 269 of file list.h.

References csList< T >::csListElement::data, csList< T >::head, csList< T >::csListElement::next, and csList< T >::PushBack().

template<class T>

csList< T >::~csList | ( |  | ) | `[inline]`

Destructor.

Definition at line 68 of file list.h.

## Member Function Documentation

template<class T>

void csList< T >::Delete | ( | Iterator & | it | ) | `[inline]`

Remove specific item by iterator.

Definition at line 424 of file list.h.

References CS_ASSERT, csList< T >::Delete(), csList< T >::Iterator::HasCurrent(), csList< T >::Iterator::IsReverse(), and csList< T >::Iterator::ptr.

template<class T>

void csList< T >::Delete | ( | csListElement * | el | ) | `[inline, protected]`

Remove specific item by explicit ref.

Definition at line 439 of file list.h.

References CS_ASSERT, csList< T >::csListElement::next, and csList< T >::csListElement::prev.

Referenced by csList< T >::Delete(), csList< iEventHandler * >::PopBack(), and csList< iEventHandler * >::PopFront().

template<class T>

void csList< T >::DeleteAll | ( |  | ) | `[inline]`

Empty an list.

Definition at line 295 of file list.h.

References csList< T >::csListElement::next.

Referenced by csList< T >::operator=(), csPartialOrder< csStringID >::Solve(), and csList< iEventHandler * >::~csList().

template<class T>

T& csList< T >::Front | ( |  | ) | const`[inline]`

Return first element of the list.

Definition at line 232 of file list.h.

template<class T>

void csList< T >::InsertAfter | ( | Iterator & | it,
|  | const T & | item |
| ) |  |  | `[inline]`

Insert an item after the item the iterator is set to.

Definition at line 334 of file list.h.

References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>

void csList< T >::InsertBefore | ( | Iterator & | it,
|  | const T & | item |
| ) |  |  | `[inline]`

Insert an item before the item the iterator is set to.

Definition at line 349 of file list.h.

References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>

T& csList< T >::Last | ( |  | ) | const`[inline]`

Return last element of the list.

Definition at line 235 of file list.h.

template<class T>

void csList< T >::MoveAfter | ( | const Iterator & | it,
|  | const Iterator & | item |
| ) |  |  | `[inline]`

Move an item (as iterator) after the item the iterator is set to.

Definition at line 364 of file list.h.

References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>

void csList< T >::MoveBefore | ( | const Iterator & | it,
|  | const Iterator & | item |
| ) |  |  | `[inline]`

Move an item (as iterator) before the item the iterator is set to.

Definition at line 394 of file list.h.

References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>

csList< T > & csList< T >::operator= | ( | const csList< T > & | other | ) | `[inline]`

Assignment, shallow copy.

Definition at line 281 of file list.h.

References csList< T >::csListElement::data, csList< T >::DeleteAll(), csList< T >::head, csList< T >::csListElement::next, and csList< T >::PushBack().

template<class T>

bool csList< T >::PopBack | ( |  | ) | `[inline]`

Deletes the last element of the list.

Definition at line 248 of file list.h.

template<class T>

bool csList< T >::PopFront | ( |  | ) | `[inline]`

Deletes the first element of the list.

Definition at line 239 of file list.h.

template<class T>

csList< T >::Iterator csList< T >::PushBack | ( | const T & | item | ) | `[inline]`

Add an item last in list. Copy T into the listdata.

Definition at line 309 of file list.h.

References csList< T >::Iterator, and csList< T >::csListElement::next.

Referenced by csList< T >::csList(), csList< T >::operator=(), and csPartialOrder< csStringID >::Solve().

template<class T>

csList< T >::Iterator csList< T >::PushFront | ( | const T & | item | ) | `[inline]`

Add an item first in list. Copy T into the listdata.

Definition at line 322 of file list.h.

References csList< T >::Iterator, and csList< T >::csListElement::prev.

The documentation for this class was generated from the following file:

- csutil/list.h