A stl::vector is the equivalent in c++ to a c array. Everything that can be done with a vector can be done with a c array and viceversa[1] the only difference between them is that the vector interface is object oriented, which means that your code will be cleaner and easier to understand. I'm going to explain here some aspects of it's inner workings trying to make it clearer how to use a vector in a safe and fast way.