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
DDDoriginal
2024-12-15 01:18:13760parcourir

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!

Déclaration:
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