List Class Reference

A template class representing an STL-conforming (doubly linked) std::list<T> More...

#include "List.hpp"

Classes

class  Iterator
 A bidirectional iterator class for List. More...
 

Public Types

typedef T value_type
 
typedef T * pointer
 
typedef T & reference
 
typedef T const & const_reference
 
typedef std::size_t size_type
 
typedef std::ptrdiff_t difference_type
 
typedef Iterator< false, true > iterator
 
typedef Iterator< true,true > const_iterator
 
typedef Iterator< false, false > reverse_iterator
 
typedef Iterator< true,false > const_reverse_iterator
 

Public Member Functions

construction / destruction
 List ()
 
 List (size_type n)
 
 List (size_type n, const T &val)
 
 List (const List &other)
 
 List (iterator beg, iterator end)
 
 List (const_iterator beg, const_iterator end)
 
 List (reverse_iterator beg, reverse_iterator end)
 
 List (const_reverse_iterator beg, const_reverse_iterator end)
 
 ~List ()
 
assignment, swapping
Listoperator= (const List &other)
 
void swap (List &other)
 
iterator traversal

forward/reverse, const/non-const

iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator rend () const
 
direct data access
reference front ()
 
reference back ()
 
const_reference front () const
 
const_reference back () const
 
size
size_type size () const
 
size_type max_size () const
 
bool empty () const
 
void clear ()
 
void resize (size_type n, T val=T())
 
insertion
void push_front (const T &val)
 
void push_back (const T &val)
 
iterator insert (iterator pos, const T &val)
 
void insert (iterator pos, size_type n, const T &val)
 
void insert (iterator pos, iterator beg, iterator end)
 
void insert (iterator pos, const_iterator beg, const_iterator end)
 
void insert (iterator pos, reverse_iterator beg, reverse_iterator end)
 
void insert (iterator pos, const_reverse_iterator beg, const_reverse_iterator end)
 
removal
void pop_front ()
 
void pop_back ()
 
iterator erase (iterator pos)
 
iterator erase (iterator beg, iterator end)
 
transfer nodes from another list
void splice (iterator before, List &from)
 
void splice (iterator before, List &from, iterator at)
 
void splice (iterator before, List &from, iterator beg, iterator end)
 
remove, unique
void remove (const T &val)
 
void unique ()
 
merge, reverse, sort
void merge (List &from)
 
void reverse ()
 
void sort ()
 

Detailed Description

A template class representing an STL-conforming (doubly linked) std::list<T>

Template Parameters
Tthe element type

Symbols for List are exported to opals DLLs as required by their modules' interfaces, meaning that DLL users are able to instantiate List only with the corresponding template arguments. The interface of opals::List differs slightly from std::list: no template constructors, no template functions are provided, but these are represented as non-template overloads for List::iterator, List::const_iterator, List::reverse_iterator, and List::const_reverse_iterator.

Author
wk
Date
02.02.2011