Well, I *never* use arrays of dynamically allocated memory unless I really need to; vectors are virtually the same performance and they clean up after themselves.

A nice feature about std::vector is that it knows its own size -- so it can easily be passed anywhere, and the size goes along with it.

Apart from some memory overhead, a vector is practically as good as an array, and safer to boot.

Oh, I never use "using namespace xxx" unless I was porting legacy code. I much prefer to always see the std::, because there are cases (vector being one of them) where I have multiple libraries with the same class names.