linked_list


template <class t, class compare = standard::compare<t>>
struct linked_list
{
  typedef linked_list_iterator<t> iterator;

  linked_list();

  linked_list(const linked_list& copy);

  template<class I>
  linked_list(I first,I last);

  linked_list(std::initializer_list<t> l);

  linked_list(const linked_list& copy);

 ~linked_list();

  linked_list& operator=(const linked_list& copy);

  linked_list& operator<<(const t& data);

  const t& back() const;

  t& back();

  iterator begin() const;

  iterator end() const;

  void erase();

  void erase(iterator i);

  const t& front() const;

  t& front();

  iterator insert(const t& data);

  iterator last() const;

  long long length() const;

  t pop();

  void sort();
};