Maison > développement back-end > C++ > Comment puis-je parcourir une `std::queue` en C ?

Comment puis-je parcourir une `std::queue` en C ?

Linda Hamilton
Libérer: 2024-10-29 02:21:30
original
909 Les gens l'ont consulté

How Can I Iterate Over a `std::queue` in C  ?

Itération sur std::queue

En C, std::queue est un conteneur premier entré, premier sorti (FIFO) . Par défaut, il utilise std::deque comme structure de données sous-jacente. Bien que cela le rende efficace pour les opérations de mise en file d'attente et de retrait de la file d'attente, cela présente un défi lorsqu'il s'agit d'itérer sur le contenu de la file d'attente.

La documentation indique qu '"aucune classe de conteneur n'est spécifiée pour une classe de file d'attente particulière". Cela signifie que nous ne pouvons pas accéder directement au deque sous-jacent et le parcourir. Cependant, il existe plusieurs façons de contourner cette limitation.

Utilisation d'une boucle For basée sur une plage

Si vous disposez du support C 11, vous pouvez utiliser une plage -boucle for basée sur pour parcourir les éléments de la file d'attente. Cette approche profite du fait que std::queue fournit des itérateurs qui peuvent être utilisés pour parcourir les éléments.

<code class="cpp">std::queue<int> queue;

// Populate the queue...

for (const int& element : queue) {
  std::cout << element << " ";
}</code>
Copier après la connexion

Utilisation d'un itérateur standard

Si vous Si vous n'avez pas de support C 11, vous pouvez toujours utiliser un itérateur standard pour parcourir la file d'attente. Le code suivant le démontre :

<code class="cpp">std::queue<int> queue;

// Populate the queue...

std::queue<int>::iterator it;
for (it = queue.begin(); it != queue.end(); ++it) {
  std::cout << *it << " ";
}</code>
Copier après la connexion

Remarque :

Bien qu'il soit possible d'accéder directement au deque sous-jacent, cela n'est pas recommandé car cela peut conduire à un résultat indéfini. comportement et corruption des données. Utilisez plutôt l'une des méthodes décrites ci-dessus pour parcourir le contenu de la file d'attente.

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