dar la vuelta elementos de una lista

Iniciado por indict, 10 Julio 2013, 19:21 PM

0 Miembros y 1 Visitante están viendo este tema.

indict

Hola,
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 (cpp) [Seleccionar]
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.

amchacon

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

dato000

ehhhhhh hagamos de cuenta que huele a troll en serio XDDD

http://www.cplusplus.com/reference/list/list/rend/
http://www.cplusplus.com/reference/list/list/rbegin/

otra forma es simplemente copiar a otra lista con los elementos inicializados en la posicion final de la lista inicial y pasar por medio de un for, pero en vez de un insert y erase, no se altera la segunda lista, sino que simplemente se usa un push back, facil, como usando arreglos.



amchacon

Cita de: dato000 en 10 Julio 2013, 20:11 PM
ehhhhhh hagamos de cuenta que huele a troll en serio XDDD

http://www.cplusplus.com/reference/list/list/rend/
http://www.cplusplus.com/reference/list/list/rbegin/

otra forma es simplemente copiar a otra lista con los elementos inicializados en la posicion final de la lista inicial y pasar por medio de un for, pero en vez de un insert y erase, no se altera la segunda lista, sino que simplemente se usa un push back, facil, como usando arreglos.
La función reverse existe:
http://www.cplusplus.com/reference/list/list/reverse/

Pero ha quedado muy troll  :xD
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

dato000

Cita de: amchacon en 10 Julio 2013, 20:58 PM
La función reverse existe:
http://www.cplusplus.com/reference/list/list/reverse/

Pero ha quedado muy troll  :xD

que raro, no me aparecio esa funcion en google, y paueky no la nombra, no paras de asombrarme, pero sigue siendo muy troll  :silbar: :silbar: