Conteneurs hétérogènes en C
La STL fournit une large gamme de conteneurs pour gérer des données avec des exigences spécifiques, telles que des tailles fixes et variables, données de types identiques et différents, données triées et non triées et accès séquentiel et aléatoire. Cependant, comme vous l'avez observé, il n'existe aucun conteneur dans la STL qui combine une taille variable avec la prise en charge de différents types de données.
Pour répondre à cette exigence spécifique, C ne propose pas de conteneur natif. Au lieu de cela, il existe deux approches principales pour stocker des données hétérogènes dans des conteneurs de taille variable :
Conteneurs de pointeurs ou de références :
Vous pouvez stocker un conteneur de pointeurs ou de références à des objets de différents types qui héritent d'une classe de base commune. Par exemple, vous pourriez avoir un std::vector
Bibliothèque Boost :
La bibliothèque Boost fournit deux outils puissants pour gérer des données hétérogènes :
Les exemples de code fournis dans la réponse à la question montrent comment utiliser boost::any pour créer un conteneur de taille variable pouvant stocker des valeurs de différents types, tels que des entiers et des chaînes. boost::variant, d'autre part, vous permet de définir un ensemble de types autorisés et de stocker les valeurs de ces types, offrant ainsi un accès sécurisé.
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!