It may not be, but I pushed for a more general scenario. We're more likely to just let the vector manage the memory instead of pre-allocating, so I used push_back instead of resize.
They do range checking by default, and I can't really say it's a bad thing, since it's more secure. But it leaves you the option to disable that, which is a very fine thing, indeed.
Actually, in release, if you try to access an out-of-bounds element in the vector, with range checking OFF, the compiler will completely optimize away that line of code.
I tried a test by preallocating vector and the result was that they were pretty equal, or vector was faster!
4-6 ms for vector, and 4-7 ms for native array.