Condividi tramite


Usare le funzioni membro della classe coda STL in Visual C++

Il codice di esempio seguente illustra come usare le queue::pushfunzioni , queue::pop, queue::emptyqueue::back, queue::front, e queue::size STL in Visual C++. Le informazioni contenute in questo articolo si applicano solo al codice Visual C++ non gestito.

Versione originale del prodotto: Visual C++
Numero KB originale: 157622

Riepilogo

L'adattatore queue contiene oggetti del tipo definito dal tipo di contenitore supportato da queue. I due contenitori supportati sono list e deque. Gli oggetti vengono inseriti da push() e rimossi da pop(). front() restituisce l'elemento meno recente in queue (noto anche come FIFO) e back() restituisce l'elemento più recente inserito in queue.

Intestazione obbligatoria

  • <queue>

Prototipi

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

Note

I nomi della classe o dei parametri nei prototipi potrebbero non corrispondere alla versione nel file di intestazione. Alcuni sono stati modificati per migliorare la leggibilità.

Codice di esempio

L'esempio mostra l'implementazione della coda usando list e deque i contenitori.

//////////////////////////////////////////////////////////////////////
// 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();
    }
}

Output del programma

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

Riferimenti

Per le stesse informazioni sulle funzioni membro della classe STL queue , vedere queue.