Io attualmente ho il seguente ciclo:Iterator per il secondo all'ultimo elemento in una lista
for(list<string>::iterator jt=it->begin(); jt!=it->end()-1; jt++)
Ho una lista di stringhe che si trova in un elenco più ampio (list<list<string> >
). Voglio scorrere il contenuto della lista interna fino a quando non arrivo al penultimo elemento. Questo perché ho già elaborato i contenuti dell'elemento finale e non ho motivo di rielaborarli.
Tuttavia, l'utilizzo di it->end()-1
non è valido - Non è possibile utilizzare l'operatore -
qui. Mentre potrei usare l'operatore --
, questo decrementerebbe questo iteratore finale per ogni ciclo.
Credo che una lista di STL sia una lista doppiamente collegata, quindi dal mio punto di vista, dovrebbe essere possibile farlo.
Consigli? Grazie in anticipo
Ho apprezzato la semplicità di questa soluzione. Sì, altre soluzioni con iteratore inverso erano buone, ma la tua soluzione mi ha insegnato un metodo senza usare un iteratore speciale. – BSchlinker
"Se non vuoi problemi con la creazione di un functor" - oggi ti consiglierei di attaccare un lambda lì – Paladin