1. ホーム
  2. c++

[解決済み] shared_ptr と scoped_ptr の比較

2022-02-14 22:48:21

質問

scoped_ptr はコピー不可で、スコープ外に削除されます。そのため、ある種の制限を受けることになります。 shared_ptr . ですから、コピー操作を本当に制限する必要がある場合以外のようです。 shared_ptr を使用するのがよいでしょう。なぜなら、オブジェクトのコピーを作成する必要があるのかないのかわからない場合があるからです。そこで質問ですが、上記のようなケース以外に shared_ptr の代わりに使用した方が良い(あるいは推奨される)。 scoped_ptr . は scoped_ptr よりもはるかに高速に動作します。 shared_ptr それとも、何か利点があるのでしょうか?

ありがとうございます。

解決方法は?

shared_ptr よりもヘビー級です。 scoped_ptr . 管理対象オブジェクトと同様に参照カウントオブジェクトの確保と解放が必要で、スレッドセーフな参照カウントを処理する必要があります。

私のアドバイスは、(一般的に)あなたのニーズを満たす最もシンプルなオブジェクトを使用することです。もし、参照カウントされた共有が必要な場合は shared_ptr もし、一つの参照を終えたら自動的に削除されればよいのであれば scoped_ptr .