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

Penuding Pintar C Mana Yang Harus Saya Pilih?

Patricia Arquette
Patricia Arquetteasal
2024-12-02 17:10:12198semak imbas

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:
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