我有一些第三方库会生成并返回 auto_ptr。但是,我真的很想使用一些 STL 容器。
所以我猜一种方法是转换
auto_ptr <int> ptr = some_library_call ();
成一个常规的 c++ 指针。下面的工作吗?
int* myptr = ptr;
如果不是,那么将 STL 与 auto_ptr 一起使用的最佳方法是什么(是的,我知道它不能直接工作……我知道 stl 和 auto_ptr 不能混合在一起)?
ptr.get()
如果您想获取指针并且仍然让 auto_ptr
之后删除它,您可以使用,或者使用ptr.release()
获取指针并auto_ptr
忘记它(您必须在之后删除它。)
在 auto_ptr 上调用release(),然后您可以将值存储在不同的智能指针或原始指针中,并将其与 STL 容器一起使用。