質問です。

//敵の生成時に一時的に入れる変数と、敵をまとめて管理する変数
EnemyObj*       enemy;
vector<EnemyObj*>  EnemyArr;

//敵の生成時に呼ばれる関数
enemy = new Enemy1(arg_x, arg_y);
EnemyArr.push_back(enemy);

このようにした場合、例えばこれで敵を三体生成したとして、
(EnemyArr[0], EnemyArr[1], EnemyArr[2])
この中から

delete EnemyArr[1];

としてもオブジェクトが破棄されないので困っています。
一番最後に生成した物(この場合EnemyArr[2])なら破棄できるみたいなのですが・・・。
一体どうしたらいいでしょう。