I'm still getting up to speed on C++ (& ASM) so forgive the ignorance - are the differences you're referring to all the cleanup code that the vector does in the destructor?
As a side note, you're not calling delete[] on the array code, but I suppose it makes little difference if you take the vector cleanup into account.