Obecnie mają następujący pętli:iterator drugiego do ostatniego elementu w postaci listy
for(list<string>::iterator jt=it->begin(); jt!=it->end()-1; jt++)
mam listę łańcuchów, które znajduje się w większej listy (list<list<string> >
). Chcę przejrzeć zawartość listy wewnętrznej, aż dojdę do elementu od drugiego do ostatniego. Jest tak, ponieważ przetworzyłem już zawartość końcowego elementu i nie mam powodu, aby przetwarzać je ponownie.
Jednak użycie it->end()-1
jest nieprawidłowe - nie mogę tutaj użyć operatora . Chociaż mógłbym użyć operatora --
, to zmniejszyłoby to końcowy iterator w każdym cyklu.
Uważam, że lista STL jest podwójnie połączoną listą, więc z mojej perspektywy powinno być możliwe zrobienie tego.
Porady? Z góry dziękuję
Doceniam prostotę tego rozwiązania. Tak, inne rozwiązania z odwrotnym iteratorem były miłe - ale twoje rozwiązanie nauczyło mnie metody bez użycia specjalnego iteratora. – BSchlinker
"Jeśli nie chcesz kłopotów z tworzeniem funktora" - dziś polecam po prostu włożyć tam lambdę – Paladin