Anteprima
Vedrai una selezione di 1 pagina su 2
Programma C++: template coda bastato su deque o list Pag. 1
1 su 2
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Programma che implementa una coda generica, basata su un container
list (default) o deque, in grado di contenere elementi di qualsiasi tipo.
Estratto del documento

#include <cstdlib>

#include <iostream>

#include <list>

#include <deque>

using namespace std;

/* Classe generica Queue, che implementa uno coda basata

su Container. Il container di default list */

template < typename T, typename Container = list <T> >

class Queue

{

public:

// Concatena un nuovo elemento in coda al container

void Push(const T &elemento) { c.push_back(elemento); };

// Estrae un elemento dalla testa del container

T Pop(); �

// Ritorna true se il container vuoto

bool Empty() const { return c.empty(); };

private:

// Container di elementi di tipo T inizialmente vuoto

Container c;

};

// Implementazione di Pop

template <typename T, typename Container>

T Queue<T, Container>::Pop()

{

if( c.empty() ) {

cerr << "ERRORE! Coda vuota. Fine del programma." << endl;

system("pause");

exit(1);

}

else {

T top;

top = c.front(); // legge l'elemento in testa alla coda

c.pop_front(); // rimuove l'elemento letto

return top;

}

}

int main()

{ // Test della classe generica Queue

/* La variabile queueList dichiarata come una coda di interi basata

sul container di default list */

Queue <int> queueList; �

/* La variabile queueDeque dichiarata come uno stack di interi basato

sul container deque */

Queue < int, deque <int> > queueDeque;

int temp;

// Inserisce in queueList 10 numeri compresi tra 1 e 10

for(int i = 1; i <= 10; i++)

queueList.Push(i);

/* Estrae i valori da queueList, li visualizza e li memorizza

nell'altra coda, queueDeque */

Dettagli
Publisher
2 pagine
123 download