quiero crear una acció que dada una lista, me de la vuelta
1,2,3,4,5 cambie a 5,4,3,2,1
Código
void voltear(list<int> &l){ list<int>:: iterator it1=l.begin(); list<int>:: iterator it2=l.end(); while(it1!=l.end()){ it2=l.insert(it2,*it1); it1=l.erase(it1); } }
Mi idea es coger el primer elemento y insertarlo al final de la lista. Como el it2 está en el final de lista, la inserción se aplicará al último elemento.
Luego eliminar el primer elemento de la lista con la función erase(it) y como la función elimina el elemento que apunta y luego pasa al siguiente entonces he prescindido del contador. Por qué sino se saltaría un elemento.
Pero no termino de plasmar correctamente la idea ya que la función no modifica la lista.
Gracias por cualquier aportación.