Maison > développement back-end > C++ > Comment accéder aux conteneurs sous-jacents dans les adaptateurs de conteneurs STL ?

Comment accéder aux conteneurs sous-jacents dans les adaptateurs de conteneurs STL ?

Linda Hamilton
Libérer: 2024-11-02 23:02:30
original
634 Les gens l'ont consulté

How to Access the Underlying Containers in STL Container Adaptors?

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&amp; Container(priority_queue<T, S, C>&amp; q) {
    struct HackedQueue : private priority_queue<T, S, C> {
        static S&amp; Container(priority_queue<T, S, C>&amp; q) {
            return q.*&amp;HackedQueue::c;
        }
    };
    return HackedQueue::Container(q);
}</code>
Copier après la connexion

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 :

  • [Référence C](https://en.cppreference.com/w/)
  • [Tutoriel STL](https://www.learncpp.com/cpp-tutorial/the-c-standard-library-48-stl/)

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!

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