Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/06/2015, 00:35
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Remplazar posicion vacia de vector

Nota incial: En C++ no hace falta hacer

Código C++:
Ver original
  1. typedef struct { } User;

Puedes conseguir el mismo efecto con

Código C++:
Ver original
  1. struct User
  2. { };

Te ahorras el typedef y usas una sintaxis más acorde con C++.

Cita:
Iniciado por juancarlosbiar Ver Mensaje
La pregunta es como hacer que lo de pos[2](la ultima del vector) se establezca en pos[1], despues de borrar lo juan. Creo que mi error es porque no utilizo una aux y se sobrescribe antes de borrar pero ya no se que pensar.
Si estás usando un arreglo "crudo", es decir, algo tal que:

Código C++:
Ver original
  1. User[20] users;

No te queda otra solución que mover a mano los objetos para que el hueco dejado por el elemento borrado se quede al final del arreglo.

En cambio, si usas un contenedor no ordenado de C++, por ejemplo vector, parar borrar un elemento tienes que hacer uso de los iteradores:

Código C++:
Ver original
  1. std::vector< User > users;
  2.  
  3. // Se rellena el vector
  4. // ...
  5.  
  6. // Borramos el quinto elemento
  7. users.erase( users.begin( ) + 4 );

Un saludo.