Pues es muy sencillo, cada vez que usas new estás reservando memoria para un dato y cuando quieras liberar esa memoria sólo tienes que usar delete.
En tu caso, los punteros que utilizas los guardas en el vector, por lo tanto, no tienes más que recorrer el vector e ir utilizando delete por cada uno de ellos.
Ejemplo:
Código C++:
Ver originalfor(int i=0; i<personas.size(); i++)
{
delete personas[i];
}
Saludos.