Diseñando un nuevo sistema desde cero. Usaré el STL para almacenar listas y mapas de ciertos objetos de larga duración.¿Debo almacenar objetos enteros o punteros a objetos en contenedores?
Pregunta: ¿Debo asegurarme de que mis objetos tengan constructores de copia y almacenen copias de los objetos dentro de mis contenedores STL, o que sea mejor administrar el visor de vida & y almacenar los punteros en esos objetos en mis contenedores STL?
Me doy cuenta de que esto es algo corto en detalles, pero estoy buscando la mejor respuesta "teórica" si existe, ya que sé que ambas soluciones son posibles.
Dos desventajas muy obvias para jugar con los punteros: 1) Debo gestionar la asignación/desasignación de estos objetos yo mismo en un ámbito más allá de la STL. 2) No puedo crear un objeto temporal en la pila y agregarlo a mis contenedores.
¿Hay algo más que me falta?
dios me encanta este sitio, esta es la pregunta EXACTA en la que estaba pensando hoy ... gracias por hacer el trabajo de preguntar por mí :-) – eviljack
otra cosa interesante es que deberíamos verificar si el puntero realmente se agregó a la colección y si no es así, probablemente deberíamos llamar a delete para evitar fugas de memoria ... if ((set.insert (pointer)). second = false) {delete pointer;} – javapowered