template <class T, template <class U>
class Allocator = allocator> class list
{
public:
// typedefs:
typedef iterator
typedef const_iterator
typedef Allocator<T>::pointer pointer
typedef Allocator<T>::reference reference
typedef Allocator<T>::const_reference const_reference
typedef size_type
typedef difference_type
typedef T value_type
typedef reverse_iterator
typedef const_reverse_iterator;
// allocation/deallocation:
list()
list(size_type n, const T& value = T())
template <class InputIterator>
list(InputIterator first, InputIterator last)
list(const list<T, Allocator>& x)
~list()
list<T, Allocator>& operator=(const list<T, Allocator>& x)
void swap(list<T, Allocator>& x);
// accessors:
iterator begin()
const_iterator begin() const
iterator end()
const_iterator end() const
reverse_iterator rbegin()
const_reverse_iterator rbegin();
reverse_iterator rend();
const_reverse_iterator rend();
bool empty() const;
size_type size() const;
size_type max_size() const;
reference front();
const_reference front() const;
reference back();
const_reference back() const;
// insert/erase:
void push_front(const T& x);
void push_back(const T& x);
iterator insert(iterator position, const T& x = T());
void insert(iterator position, size_type n, const T& x);
template <class InputIterator>
void insert(iterator position, InputIterator first, InputIterator last);
void pop_front();
void pop_back();
void erase(iterator position);
void erase(iterator first, iterator last);
// special mutative operations on list:
void splice(iterator position, list<T, Allocator>& x);
void splice(iterator position, list<T, Allocator>& x, iterator i);
void splice(iterator position, list<T, Allocator>& x,
iterator first, iterator last);
void remove(const T& value);
template <class Predicate> void remove_if(Predicate pred);
void unique();
template <class BinaryPredicate> void unique(BinaryPredicate binary_pr
void merge(list<T, Allocator>& x);
template <class Compare> void merge(list<T, Allocator>& x, Compare com
void reverse();
void sort();
template <class Compare> void sort(Compare comp);
};