Maison > développement back-end > C++ > Quelles implémentations de C Smart Pointer existent et en quoi diffèrent-elles ?

Quelles implémentations de C Smart Pointer existent et en quoi diffèrent-elles ?

Barbara Streisand
Libérer: 2024-11-30 10:46:12
original
633 Les gens l'ont consulté

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

Quelles implémentations de pointeurs intelligents C sont disponibles ?

C 03

  • std::auto_ptr: Ramassage des ordures limité, impossible de conserver le tableau alloué objets,不支持拷贝,已废弃。
  • std::auto_ptr_ref: Pas un pointeur intelligent, utilisé avec std::auto_ptr pour la copie et l'affectation.

C 11

  • std::unique_ptr: Remplace std::auto_ptr, performances améliorées, fonctionne avec des tableaux, peut être utilisé dans les conteneurs STL.
  • std::shared_ptr: Pointeur intelligent avec comptage de référence, peut être partagé par plusieurs propriétaires, thread-safe.
  • std::weak_ptr: Référence à un objet appartenant à std::shared_ptr, n'empêche pas suppression.

Boost

  • boost::shared_ptr: Ptr partagé conforme aux normes, facile à utiliser , frais généraux élevés dans certains cas.
  • boost::weak_ptr: Low_ptr conforme à la norme, permet aux références non propriétaires de boost::shared_ptr.
  • boost::scoped_ptr: Semblable à std::unique_ptr, moins de surcharge que boost::shared_ptr, impossible être utilisé dans les conteneurs STL.
  • boost::intrusive_ptr: Pointeur intelligent personnalisable pour créer vos propres classes compatibles avec les pointeurs intelligents.
  • boost::shared_array : Shared_ptr pour les tableaux, prend en charge l'allocation dynamique des tableaux et suppression.
  • boost::scoped_array: Scoped_ptr pour les tableaux, non copiable, ne peut pas être utilisé en STL conteneurs.

Qt

  • QPointer : Pointeur intelligent faible pour QObject et les classes dérivées, ne fournit pas de fort pointeur.
  • QSharedDataPointer : Pointeur intelligent puissant, nécessite un comptage manuel des références, peut sous-classer QSharedData.
  • QExplicitlySharedDataPointer : Semblable à QSharedDataPointer, offre plus de contrôle sur détachement.
  • QSharedPointer : Comptage de références atomiques, thread-safe, suppressions personnalisables, surcharge élevée.
  • QWeakPointer : Pointeur intelligent faible, utilisé avec QSharedPointer pour empêcher la circulaire références.
  • QScopedPointer : Pointeur intelligent à propriétaire unique, moins de frais généraux que QSharedPointer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal