Ver Mensaje Individual
  #13 (permalink)  
Antiguo 09/02/2015, 11:34
amchacon
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 5 meses
Puntos: 28
Respuesta: [Consulta]Tile Map.¿Mejor std::vector o array?

Cita:
Iniciado por razpeitia Ver Mensaje
O_O usa valgrid, te ayuda a detectar memory leaks y este tipo de errores.
Es otra opción, pero es ganas de reinventar la rueda *_*

Cita:
Iniciado por razpeitia Ver Mensaje
Solo para tener at, swap y otros métodos?
Para liberarte del manejo de memoria, para usar los métodos ya creados en cada clase STL y para reutilizar código ya hecho.

Si tienes que usar una Cola. ¿Te haces una class Cola o usas queue? Pues la segunda opción es la más rápida y sencilla.

Cita:
Iniciado por razpeitia Ver Mensaje
Y STL no esta libre de bugs, solo checa el bug tracker https://gcc.gnu.org/bugzilla/buglist...ormat=advanced
Ok dejemoslo en casi sin bugs. Desde luego va a tener menos que una implementación que hagas sobre la marcha.

Cita:
Iniciado por razpeitia Ver Mensaje
Mira el motor de quake engine 3, no usan stl. Principalmente porque saben que están haciendo.
De hecho el motor del Quake es un bichaco lindo de elogio.

Pero eso no cambia nada, yo también podría ponerte ejemplos de juegos hechos en ensamblador. Y no por ello sería la mejor opción a día de hoy, esque si se siguiera ese ejemplo también sería absurdo usar Java o C# *_*

Cita:
Iniciado por razpeitia Ver Mensaje
Para que me agrege overhead y me complique el manejo de memoria al ponerlo en heap?
Cita:
Iniciado por razpeitia Ver Mensaje
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.
En el stack no hay problema y es lo más sencillo. Pero si lo vas a cargar en el stack esque el mapa no es muy grande que digamos.

A partir de 100.000 elementos yo ya pienso en pasar cosas al heap, así no corro riesgo de desbordar la pila. Y con el uso de las STL me libero de la tarea de administrarla.