Maison > développement back-end > C++ > Quel conteneur de bibliothèque standard C 11 dois-je choisir ?

Quel conteneur de bibliothèque standard C 11 dois-je choisir ?

DDD
Libérer: 2024-12-15 01:18:13
original
757 Les gens l'ont consulté

Which C  11 Standard Library Container Should I Choose?

Sélection d'un conteneur de bibliothèque standard C 11 : un guide complet

La sélection d'un conteneur approprié en C 11 est cruciale pour une gestion efficace des données. Contrairement à l'aide-mémoire bien connu "C Container Choice", une version C 11 n'a pas encore été créée.

Cependant, la création d'un tel graphique peut être simplifiée en adhérant à deux principes : prioriser la sémantique et opter pour le solution la plus simple lorsque plusieurs options existent. Les considérations de performances ne doivent être prises en compte que lors de la gestion de grands ensembles de données.

Séquence associative ou simple

Les conteneurs sont classés en deux types principaux : séquence associative et simple.

Conteneurs associatifs

Utiliser des conteneurs associatifs pour :

  • Recherche facile par une seule clé
  • Éléments triés (conteneurs associatifs ordonnés)

Conteneurs de séquence simples

Utilisez des conteneurs de séquence simples lorsque :

  • L'ordre des éléments est non pertinent
  • La stabilité de la mémoire (emplacements de mémoire fixes) est nécessaire

Processus de sélection étape par étape

Pour les associations Conteneurs

  • Commandés ?

    • Oui : utilisez std::map ou std::set (en fonction de la clé- séparation des valeurs)
    • Non : utilisez std::unordered_map ou std::unordered_set
  • Doublons ?

    • Oui : utilisez std::multimap ou std::multiset
    • Non : utilisez std::map ou std::set

Pour les conteneurs de séquence simple

  • Mémoire stable ?

    • Oui : Utiliser std::list
  • Taille dynamique ?

    • Taille connue au moment de la compilation ? : Utiliser std::array
    • Taille inconnue ? : Continuer
  • Double extrémité ?

    • Oui : utiliser std::deque
    • Non : Utiliser std::vector

Choix par défaut

Dans la plupart des cas, sauf exigences associatives ou spécifiques, std::vector est le choix préféré (comme recommandé par Sutter et Stroustrup).

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal