智能指针和容器的问题

当你拷贝一个auto_ptr,被auto_ptr所指的对象的所有权已经转移到了新的auto_ptr中去了,原有的auto_ptr被设置为NULL。 实质就是:拷贝一个auto_ptr,将会改变auto_ptr本身的值。 stl的容器中有很多需要拷贝元素的操作,如排序、查找等,这些操作都会改变auto_ptr的值,这绝对不是你所希望的 Effective c++中就建议不要在容器中使用auto_ptr,可以使用smart_ptr中的shared_ptr

你可能感兴趣的:(c,null)