
//
// To jest przykładowy kod z podrozdziału 20.4.1 „Operacje list” książki
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

//------------------------------------------------------------------------------

template<class Elem> class list {
    // Szczegóły reprezentacyjne i implementacyjne.
public:
    class iterator;     // Typ składowy: iterator

    iterator begin();   // Iterator wskazujący pierwszy element.
    iterator end( );    // Iterator wskazujący miejsce za ostatnim elementem.

    iterator  insert(iterator p, const Elem& v); // Wstawia v do listy za p.
    iterator erase(iterator p);     // Usuwa p z listy.

    void push_back(const Elem& v);  // Wstawia v na końcu.
    void push_front(const Elem& v); // Wstawia v na początku.
    void pop_front();   // Usuwa pierwszy element.
    void pop_back();    // Usuwa ostatni element.

    Elem& front();      // Pierwszy element.
    Elem& back();       // Ostatni element.

    // ...
};

//------------------------------------------------------------------------------
