从auto_ptr转换为普通指针

Convert from auto_ptr to normal pointer

本文关键字:指针 转换 auto ptr      更新时间:2023-10-16

我有一些第三方库可以生成并返回auto_ptr。但是,我真的很想使用一些 STL 容器。

所以我猜一种方法是转换

auto_ptr <int> ptr = some_library_call ();

变成常规的 C++ 指针。以下方法是否有效?

int* myptr = ptr;

如果没有,将 STL 与 auto_ptr 一起使用的最佳方法是什么(是的,我知道它不会直接工作......我知道 stl 和 auto_ptr 不会混合在一起)?

如果要

获取指针,之后仍让auto_ptr删除它,可以使用ptr.get(),也可以使用ptr.release()获取指针并使auto_ptr忘记它(之后必须删除它)。

在auto_ptr上调用 release(),然后您可以将值存储在不同的智能指针或原始指针中,并将其与 STL 容器一起使用。