One thing to note is that, although the C++ standard says operator[] of vector does not check if it is out of bound, the implementation in VC2010 under debug mode does check that, which could be a performance problem (compared to array) when you are using the Debug mode. Release is OK