In a comparison on performance between Java and C++ our professor claimed, that theres no benefit in choosing a native array (dynamic array like `int * a = new int[NUM]` ) over std::vector. She claimed too, that the optimized vector can be faster, but didn't tell us why. What is the magic behind the vector?

PLEASE just answers on performance, this is not a general poll!