[C++] lista jednokierunkowa STL

0

Witam!
Uczę się ostatnio STL-a i mam problem z listą jednokierunkowa (czyli slist). Mianowicie gdy próbuję dodać element na koniec listy to okazuje się że w przypadku list jednokierunkowych nie ma metody push_back (jak w przypadku list dwukierunkowych z biblioteki list).

 
#include <iostream>
#include <ext/slist>
using namespace std;
using namespace __gnu_cxx;

int main(){
    slist<int> L;
    L.push_front(3);L.push_front(5);
    L.push_back(4);
    
    }

No i próba L.push_back(4) wywala komunikat, że klasa slist nie ma elementu push_back. Jeśli chodzi o dodawanie elementu na koniec listy udało mi się znaleźć póki co jedynie coś takiego

L.insert_after(L.end(),12); 

I moje pytanie jest takie. Czy jest jakaś prostsza metoda dodawania elementu na koniec listy, taka w której jedynym parametrem byłby obiekt który do listy chcemy dodać? Z góry dzięki za pomoc.

0
stefaneczek napisał(a):

I moje pytanie jest takie. Czy jest jakaś prostsza metoda dodawania elementu na koniec listy, taka w której jedynym parametrem byłby obiekt który do listy chcemy dodać? Z góry dzięki za pomoc.
zastosować list z stl'a ze standardowej biblioteki c++. Kontener slist należący do rozszerzenia stl'a nie jest przewidziany do takich operacji, które chcesz przeprowadzić. Wykonanie tego co chcesz powoduje tak naprawdę utratę sensu użycia tego kontenera. Jeśli chcesz wykorzystywać kontener, w którym operacja wstawiania na koniec listy jest wydajna musisz skorzystać z czegoś innego. Innymi słowy nie widzę sensu kombinowania, a w inny sposób tego nie zrobisz (oczywiście możesz sobie uprościć życie za pomocą funkcji czy klas ale jak już wspominałem imo to nie ma sensu).

1 użytkowników online, w tym zalogowanych: 0, gości: 1