Tout savoir sur std::queue en C++ : Guide complet avec quiz

A

Amine Abidi - Lead Software Engineer C++/Qt - Co-fondateur PointerLab

May 5, 2025

Tout savoir sur std::queue en C++ : Guide complet avec quiz

Introduction à std::queue

std::queue est une structure de données essentielle en C++ qui permet de gérer des éléments selon le principe FIFO (First-In-First-Out). Cela signifie que le premier élément inséré sera le premier à être retiré.

Elle est incluse dans la bibliothèque `` et repose sur un conteneur sous-jacent, généralement std::deque. Cette structure est particulièrement utile pour des cas comme le traitement en file d’attente, les algorithmes de parcours en largeur (BFS), ou encore la gestion de flux de données.


Qu'est-ce que std::queue en C++ ?

std::queue est une classe de la bibliothèque standard C++ qui représente une file d’attente. Elle permet de stocker des éléments de manière séquentielle et de les traiter dans l’ordre où ils ont été ajoutés. C’est une abstraction idéale pour les scénarios où l’ordre d’arrivée des éléments doit être respecté.


Méthodes de base à la classe queue en C++ :

Voici les principales fonctions de std::queue que vous devez connaître :

  • push() — Ajouter un élément à la fin de la file.
  • pop() — Retirer l’élément en tête de la file.
  • front() — Accéder à l’élément en tête de la file.
  • back() — Accéder à l’élément en fin de la file.
  • empty() — Vérifier si la file est vide.
  • size() — Obtenir le nombre d’éléments dans la file.

Comment ajouter à une file d’attente en C++ ?

Pour ajouter un élément à une file d’attente, utilisez la méthode push(). Elle insère l’élément à la fin de la file.

Exemple :

#include 
#include 

- int main() {
- std::queue q;

- q.push(10); // Ajouter un élément
- q.push(20); // Ajouter un autre élément

    std::cout 
#include 

- int main() {
- std::queue q;

- q.push(10);
- q.push(20);

    std::cout 
#include 

- int main() {
- std::queue q;

- q.push(5);
- q.push(15);
- q.push(25);

    std::cout 
#include 

- int main() {
- std::queue q;

- q.push(10);
- q.push(20);

    std::cout 
#include 

- int main() {
- std::queue q;

- q.push(10);
- q.push(20);

    std::cout 
#include 

- int main() {
- std::queue q;

    std::cout 
#include 

- int main() {
- std::queue q;

- q.push(10);
- q.push(20);
- q.push(30);

    std::cout 
#include 

- int main() {
- std::queue q;

    std::cout 
#include 

- int main() {
- std::queue q;
- q.push(10);
- q.push(20);
- q.push(30);

    std::cout 
#include 
#include 

int main() {
    // Utilisation de std::list comme conteneur sous-jacent
- std::queue> customQueue;

- customQueue.push(10);
- customQueue.push(20);

    std::cout 
#include 

- class CustomQueue {
- private:
- std::deque data;

- public:
- void push(int value) {
        data.push_back(value);
    }

- void pop() {
- if (!data.empty()) {
            data.pop_front();
        }
    }

- int front() const {
        return data.front();
    }

- int back() const {
        return data.back();
    }

- bool empty() const {
        return data.empty();
    }

- size_t size() const {
        return data.size();
    }
};

int main() {
    CustomQueue q;
- q.push(10);
- q.push(20);

    std::cout 
#include 

- int main() {
- std::queue q;
- q.push(10);
- q.push(20);
- q.push(30);

- std::cout  q;
q.push(1); q.push(2); q.pop(); std::cout << q.front();

Réponses au quiz

  1. back()
  2. Comportement indéfini — à éviter
  3. std::deque
  4. FIFO
  5. 2

Conclusion

std::queue est une structure simple mais puissante pour gérer des flux FIFO. Elle est idéale pour des applications variées allant des algorithmes aux systèmes de gestion de tâches.

Prochaine étape : explorer les queues concurrentes ou les priority_queue.


Découvrez l'ensemble de notre blog sur le C++