Ohhh okay thankyou!! It compiles! And I just want to use dynamic memory because it is a bit quicker when I access it every draw call.
A) Optimizing prematurely causes more pain then it saves.
B) Unless you are running in debug mode, the speed of std::vector::operator should be about identical to a raw pointer's  subscript operator.
C) If it's not identical, you could get the pointer to vector (.data() in C++11) and treat it as a normal array anyway, but the dynamic memory will still be managed for you safely.
D) The C++ standard library is heavily optimized by the people who wrote the compiler you're using, I think it's rather fast enough.
To correct myself: if you are using C++11 (the latest version of C++ standardized last year), the correct container would probably be std::array<> or std::vector<>, but you might not have that available yet.