Supongamos que tengo una clase foo, y desea utilizar un std :: mapa para almacenar algunos impulso :: shared_ptrs, por ejemplo:impulso :: shared_ptr contenedor estándar
class foo;
typedef boost::shared_ptr<foo> foo_sp;
typeded std::map<int, foo_sp> foo_sp_map;
foo_sp_map m;
Si agrego un nuevo foo_sp a la pero la clave utilizada ya existe, ¿se eliminará la entrada existente? Por ejemplo:
foo_sp_map m;
void func1()
{
foo_sp p(new foo);
m[0] = p;
}
void func2()
{
foo_sp p2(new foo);
m[0] = p2;
}
¿Se liberará el puntero original (p) cuando se sustituya por p2? Estoy bastante seguro de que será, pero pensé que valía la pena preguntar/compartir.
Pregunta modificada: debe ser shared_ptr not auto_ptr, – Rob
Es "should _have_" –