auto_ptr:
- auto_ptr 是 C++ 98 的标准,C++ 11 已经抛弃。
- auto_ptr 是 C++ 标准库提供的类模板,auto_ptr 通过初始化指向由 new 创建的动态内存,因为 auto_ptr 采用的是所有权的模式,它是这块内存的拥有者,所以一块内存不能同时被分配给两个 auto_ptr 。
- auto_ptr 被赋值或拷贝后,失去对原指针的管理,所以 auto_ptr 存在潜在的内存泄漏问题。
- auto_ptr 不能作为容器对象,因为 STL 的容器元素经常要拷贝、赋值等操作。
例如:
auto_ptr<string> p1(new string("I reigned lonely as a cloud."));
auto_ptr<