3

auto_ptr を生成して返すサードパーティ ライブラリがいくつかあります。ただし、いくつかの STL コンテナーを使用したいです。

したがって、1つの方法は変換することだと思います

auto_ptr <int> ptr = some_library_call ();

通常の C++ ポインターに変換します。以下は機能しますか?

int* myptr = ptr;

そうでない場合、auto_ptr で STL を使用する最良の方法は何ですか?

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 に答える