Una ventaja que tiene los vectores frente a los arreglos esque en la depuración puedes usar la función at.
Es igual que los operadores [] pero lanza una excepción si adcedes fuera de rango. Muy útil para detectar desbordamientos de array.
Cita: 1. Usualmente el tamaño del mapa no cambia en tiempo de ejecución.
Lo cual no es excusa, simplemente es usar el contenedor adecuado. El contenedor Array tiene un tamaño constante por ejemplo:
http://www.cplusplus.com/reference/array/array/ Cita: 2. Tu eres responsable del manejo de la memoria.
Mala idea, el código de las STL está probado, libre de bugs y optimizado a más no poder. Pero el tuyo no, es muy fácil que te salga un memory leak y acabe siendo peor.
También puedes hacer algo combinado y es crear los elementos dinámicamente con unique_ptr:
http://www.cplusplus.com/reference/memory/unique_ptr/
De esa forma, tu decides cuando haces "delete" en el objeto. Pero si se te olvidara ya lo hace el unique_ptr por defecto (ojo, el unique_ptr es para elementos individuales, para arreglos hay que usar la STL array).
Cita: 3. Hoy hay overhead al acceder a un elemento.
Despreciable respecto a una implementación a mano.
Cita: 4. Incluso si el mapa es grande, no ocupas tenerlo todo cargado en ram al mismo tiempo.
5. De hecho habrá un numero de titles determinado que solo van a poderse dibujar en la pantalla.
Eso lo puedes hacer igual con un contenedor STL.