Choisir le conteneur de bibliothèque standard C 11 optimal
L'aide-mémoire classique « C Container Choice » fournit des conseils sur la sélection du conteneur approprié pour des scénarios d'utilisation spécifiques. Cependant, il lui manque une version mise à jour pour C 11.
Pour compenser, voici un workflow textuel pour aider à la sélection des conteneurs :
1. La sémantique d'abord
Conteneurs associatifs :
- Utilisez des conteneurs associatifs si vous avez besoin d'effectuer une recherche à l'aide d'une seule clé.
- Choisissez des conteneurs ordonnés pour maintenir le tri éléments.
- Pour des paires clé-valeur distinctes, utilisez Map ; pour les clés uniquement, pensez à Set.
- Activez les doublons avec des préfixes « multi ».
Conteneurs de séquence simples :
- Sélectionnez un contenant approprié en fonction des critères suivants :
2. Stabilité de la mémoire
- Utilisez les listes si les éléments doivent rester en mémoire lors des modifications du conteneur.
- Liste par défaut ; utilisez Forward_List uniquement pour réduire l'empreinte mémoire.
3. Dimensionnement dynamique
- Utilisez des tableaux si la taille est connue au moment de la compilation et reste constante, et que les éléments sont constructibles par défaut ou initialisés à l'aide d'accolades.
4. Double extrémité
- Choisissez Deque si vous devez ajouter ou supprimer des éléments aux deux extrémités.
- Optez pour Vector sinon.
Exemples
Scénario : Récupération de données sur une personne en fonction de données uniques ID.
- Nous avons besoin d'une fonctionnalité de recherche (conteneur associatif).
- L'ordre n'a pas d'importance (non ordonné).
- Les clés (ID) sont séparées des valeurs (carte). .
- Aucun doublon (non "multi").
Résultat : std::unordered_map.
Remarque : Si aucune contrainte particulière appliquer, Vector est recommandé comme choix par défaut pour les conteneurs de séquence simples.
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!