Rumah > pembangunan bahagian belakang > C++ > Penuding Pintar C Mana Yang Harus Saya Pilih?

Penuding Pintar C Mana Yang Harus Saya Pilih?

Patricia Arquette
Lepaskan: 2024-12-02 17:10:12
asal
318 orang telah melayarinya

Which C   Smart Pointer Should I Choose?

Pelaksanaan Penunjuk Pintar C yang Tersedia dan Perbandingannya

C 03

  • std::auto_ptr: Ditamatkan pada masa hadapan C piawaian. Kutipan sampah terhad, komplikasi pemilikan dan ketidakupayaan untuk digunakan dalam bekas STL.
  • std::auto_ptr_ref: Bukan penunjuk pintar yang sebenar; digunakan bersama std::auto_ptr untuk membenarkan penyalinan dan tugasan.

C 11

  • std::unique_ptr: Menggantikan std::auto_ptr. Membetulkan kelemahan std::auto_ptr, membenarkan kerja dengan tatasusunan, perlindungan nilai dan penggunaan dalam bekas STL.
  • std::shared_ptr: Penunjuk pintar dikira rujukan. Menyokong pengalian dan aritmetik penunjuk.
  • std::weak_ptr: Rujukan bukan milik kepada objek yang dimiliki oleh std::shared_ptr. Menghalang kiraan rujukan kitaran tidak tentu.

Tingkatkan

  • rangsangan::shared_ptr: Penunjuk pintar dikira rujukan dikongsi popular. Prestasi tinggi dan serba boleh.
  • boost::weak_ptr: Rujukan bukan milik kepada boost::shared_ptr.
  • boost::scoped_ptr: Alternatif penunjuk pintar mudah untuk meningkatkan::shared_ptr dengan kurang overhed.
  • boost::intrusive_ptr: Penunjuk pintar tersuai untuk mencipta kelas serasi penunjuk pintar anda sendiri.
  • boost::shared_array: Shared penunjuk pintar untuk tatasusunan.
  • boost::scoped_array: Penunjuk pintar tidak boleh disalin untuk tatasusunan.

Qt

  • QPointer: Penunjuk pintar yang lemah untuk QObject dan terbitan kelas. Dihentikan.
  • QSharedDataPointer: Penunjuk pintar yang kuat setanding dengan boost::intrusive_ptr, dengan keselamatan benang.
  • QExplicitlySharedDataPointer:Versi 2.0 InterDataPointer yang dipertingkatkan kawalan ke atas detasmen.
  • QSharedPointer: Pengiraan rujukan atom, selamat benang, penunjuk pintar boleh kongsi.
  • QWeakPointer: Rujukan bukan milik kepada QSharedPointer.
  • QScopedPointer: Petunjuk pintar pemilik tunggal berdasarkan rangsangan::scoped_ptr, sesuai untuk kod dan keserasian selamat pengecualian.

Atas ialah kandungan terperinci Penuding Pintar C Mana Yang Harus Saya Pilih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan