Partager via


Utiliser les fonctions membres de la classe de file d’attente STL dans Visual C++

L’exemple de code ci-dessous montre comment utiliser les queue::pushfonctions , , queue::popqueue::empty, queue::back, et queue::frontqueue::size STL dans Visual C++. Les informations contenues dans cet article s’appliquent uniquement au code Visual C++ non managé.

Version du produit d’origine : Visual C++
Numéro de base de connaissances d’origine : 157622

Résumé

L’adaptateur queue contient des objets du type défini par le type de conteneur pris en charge par le queue. Les deux conteneurs pris en charge sont le list et le deque. Les objets sont insérés par push() et supprimés par pop(). front() retourne l’élément le plus ancien dans le queue (également appelé FIFO) et back() retourne le dernier élément inséré dans le queue.

En-tête requis

  • <queue>

Prototypes

queue::push();
queue::pop();
queue::empty();
queue::back();
queue::front();
queue::size();

Note

Les noms de classe ou de paramètre dans les prototypes peuvent ne pas correspondre à la version dans le fichier d’en-tête. Certains ont été modifiés pour améliorer la lisibilité.

Exemple de code

L’exemple montre l’implémentation de file d’attente à l’aide list et deque aux conteneurs.

//////////////////////////////////////////////////////////////////////
// Compile options needed: none
// <filename> : queue.cpp
// Functions:
// queue::push(), queue::pop(), queue::empty(), queue::back(),
// queue::front(),queue::size()
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
//////////////////////////////////////////////////////////////////////

/* Compile options needed: /GX */
#include <list>
#include <iostream>
#include <queue>
#include <deque>
using namespace std;

#if _MSC_VER > 1020  // if VC++ version is > 4.2
    using namespace std; // std c++ libs implemented in std
#endif

// Using queue with list
typedef list<int, allocator<int>> INTLIST;
typedef queue<int, INTLIST> INTQUEUE;

// Using queue with deque
typedef deque<char *, allocator<char *>> CHARDEQUE;
typedef queue<char *, CHARDEQUE> CHARQUEUE;
void main(void)
{
    int size_q;
    INTQUEUE q;
    CHARQUEUE p;

    // Insert items in the queue(uses list)
    q.push(42);
    q.push(100);
    q.push(49);
    q.push(201);

    // Output the item inserted last using back()
    cout << q.back() << endl;

    // Output the size of queue
    size_q = q.size();
    cout << "size of q is:" << size_q << endl;

    // Output items in queue using front()
    // and use pop() to get to next item until
    // queue is empty
    while (!q.empty())
    {
        cout << q.front() << endl;
        q.pop();
    }

    // Insert items in the queue(uses deque)
    p.push("cat");
    p.push("ape");
    p.push("dog");
    p.push("mouse");
    p.push("horse");

    // Output the item inserted last using back()
    cout << p.back() << endl;

    // Output the size of queue
    size_q = p.size();
    cout << "size of p is:" << size_q << endl;

    // Output items in queue using front()
    // and use pop() to get to next item until
    // queue is empty
    while (!p.empty())
    {
        cout << p.front() << endl;
        p.pop();
    }
}

Sortie du programme

201
size of q is:4
42
100
49
201
horse
size of p is:5
cat
ape
dog
mouse
horse

References

Pour plus d’informations sur les fonctions membres de la classe STL queue , consultez file d’attente.