Cita:
Iniciado por amchacon 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.
O_O usa valgrid, te ayuda a detectar memory leaks y este tipo de errores.
Solo para tener at, swap y otros métodos?
Para que me agrege overhead y me complique el manejo de memoria al ponerlo en heap?
Cita:
Iniciado por amchacon 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.
Como te dije antes, existes herramientas para detectar memory leaks, segmentation fault, etc...
Y STL no esta libre de bugs, solo checa el bug tracker
https://gcc.gnu.org/bugzilla/buglist...ormat=advanced Mira el motor de quake engine 3, no usan stl. Principalmente porque saben que están haciendo.
Cita:
Iniciado por amchacon 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).
Posiblemente le ayude, en otros escenarios. Pero en un mapa usualmente solo lo cargas al iniciar y lo eliminas al salir. Y si usas stack en lugar de heap no ocupas liberar la memoria.