Maison > Article > développement back-end > Comment accéder aux conteneurs sous-jacents dans les adaptateurs de conteneurs STL ?
Accès aux conteneurs sous-jacents dans les adaptateurs de conteneurs STL
En C, les adaptateurs de conteneurs STL superposent des fonctionnalités supplémentaires aux conteneurs existants. Cependant, accéder au conteneur sous-jacent dans ces adaptateurs peut être souhaitable pour certaines opérations.
Méthode pour la pile et la file d'attente
Pour la pile et la file d'attente, il existe une méthode non standard méthode appelée _Get_container() qui peut récupérer le conteneur sous-jacent. Cependant, cette méthode ne fait pas partie de la norme et sa disponibilité peut varier selon les implémentations.
Méthode pour Priority_queue
Malheureusement, il n'existe pas de méthode standard pour accéder au fichier sous-jacent. conteneur d'une file d'attente prioritaire.
Approche alternative
Une approche alternative pour les trois adaptateurs de conteneur consiste à utiliser une classe dérivée privée avec accès au conteneur sous-jacent. Par exemple, pour une file d'attente prioritaire :
<code class="cpp">template <class T, class S, class C> S& Container(priority_queue<T, S, C>& q) { struct HackedQueue : private priority_queue<T, S, C> { static S& Container(priority_queue<T, S, C>& q) { return q.*&HackedQueue::c; } }; return HackedQueue::Container(q); }</code>
Cette approche permet d'accéder au conteneur sous-jacent via la fonction Container().
Documentation de la bibliothèque standard
La documentation officielle de la bibliothèque standard C peut être trouvée aux emplacements suivants :
Clarification
L'objectif de l'utilisateur est d'imprimer le contenu d'un conteneur à une valeur à l'aide d'une fonction générique. Ceci peut être réalisé en accédant au conteneur sous-jacent, qui contient les données réelles.
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!