Heim > Backend-Entwicklung > C++ > Welche C-Smart-Pointer-Implementierungen gibt es und wie unterscheiden sie sich?

Welche C-Smart-Pointer-Implementierungen gibt es und wie unterscheiden sie sich?

Barbara Streisand
Freigeben: 2024-11-30 10:46:12
Original
652 Leute haben es durchsucht

What C   Smart Pointer Implementations Exist and How Do They Differ?

Welche C-Smart-Pointer-Implementierungen sind verfügbar?

C 03

  • std::auto_ptr: Begrenzt Garbage Collection, kann keine vom Array zugewiesenen Objekte speichern.
  • std::auto_ptr_ref: Kein intelligenter Zeiger, wird mit std::auto_ptr zum Kopieren und Zuweisen verwendet.

C 11

  • std::unique_ptr: Ersetzt std::auto_ptr, verbesserte Leistung, funktioniert mit Arrays, kann in STL-Containern verwendet werden.
  • std::shared_ptr: Referenzgezählter intelligenter Zeiger, kann sein Von mehreren Besitzern geteilt, Thread-sicher.
  • std::weak_ptr: Verweis auf ein Objekt im Besitz von std::shared_ptr, verhindert nicht Löschung.

Boost

  • boost::shared_ptr: Standardkonformer Shared-PTR, einfach zu verwenden , teilweise hoher Overhead Fälle.
  • boost::weak_ptr: Standardkonformer schwacher_ptr, ermöglicht nicht besitzende Referenzen auf boost::shared_ptr.
  • boost::scoped_ptr: Ähnlich wie std::unique_ptr, weniger Overhead als boost::shared_ptr, kann nicht sein Wird in STL-Containern verwendet.
  • boost::intrusive_ptr: Anpassbarer Smart Pointer zum Erstellen eigener Smart Pointer-kompatibler Klassen.
  • boost::shared_array: Shared_ptr für Arrays, unterstützt die dynamische Array-Zuweisung und Löschung.
  • boost::scoped_array: Scoped_ptr für Arrays, nicht kopierbar, kann nicht in STL verwendet werden Container.

Qt

  • QPointer: Schwacher intelligenter Zeiger für QObject und abgeleitete Klassen, bietet keinen starker Zeiger.
  • QSharedDataPointer: Stark Intelligenter Zeiger, erfordert manuelle Referenzzählung, kann QSharedData in Unterklassen umwandeln.
  • QExplicitlySharedDataPointer: Ähnlich wie QSharedDataPointer, bietet mehr Kontrolle über das Trennen.
  • QSharedPointer: Atomare Referenzzählung, Thread-sicher, anpassbare Löschvorgänge, hoch Overhead.
  • QWeakPointer: Schwacher Smart Pointer, wird mit QSharedPointer verwendet, um Zirkelverweise zu verhindern.
  • QScopedPointer: Smart Pointer für einen einzelnen Besitzer, weniger Overhead als QSharedPointer.

Das obige ist der detaillierte Inhalt vonWelche C-Smart-Pointer-Implementierungen gibt es und wie unterscheiden sie sich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage