3

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

所以我猜一种方法是转换

auto_ptr <int> ptr = some_library_call ();

成一个常规的 c++ 指针。下面的工作吗?

int* myptr = ptr;

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

4

2 回答 2

8

ptr.get()如果您想获取指针并且仍然让 auto_ptr之后删除它,您可以使用,或者使用ptr.release()获取指针并auto_ptr忘记它(您必须在之后删除它。)

于 2012-04-23T21:45:36.957 回答
3

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

于 2012-04-23T21:44:35.237 回答