vuoi
o PayPal
tutte le volte che vuoi
Gli argomenti da inserire nello stack sono immessi dalla linea di comando del programma.
Consiglio per chi usa Dev-C++:
Dal menu Esegui selezionare il comando Parametri...Poi nella finestra di dialogo scrivere una frase nella casella di testo:
Parametri da passare al programma.
Nota: il programma NON fa uso del contenitore standard stack.
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
// Classe generica Stack basata su vector
template <typename T>
class Stack
{
public:
void Push(T); // inserisce un elemento in cima allo stack
T Pop(); // estrae l'elemento in cima allo stack
�
bool Empty(); // torna true se lo stack vuoto
private:
// Container vector di elementi di tipo T inizialmente vuoto
vector <T> vett;
};
int main(int argc, char *argv[])
{ // Test della classe generica Stack
Stack <char *> pila;
// Inserisce nello stack le parole presenti sulla linea di comando
for(int i = 1; i < argc; i++)
pila.Push( argv[i] ); �
/* Estrae dallo stack le parole memorizzate. L'ordine sar invertito
� �
perch lo stack una struttura LIFO (l'ultimo elemento che entra
� anche il primo che esce */
while( !pila.Empty() )
cout << pila.Pop() << " ";
cout << endl;
system("pause");
}
template <typename T>
void Stack<T>::Push(T elemento)
{
vett.push_back(elemento);
}
template <typename T>
T Stack<T>::Pop()
{
if( Empty() ) {
cerr << "ERRORE! Stack vuoto. Fine del programma." << endl;
system("pause");
exit(1);
}
else {
T top;
top = vett.back(); // legge l'elemento in cima allo stack
vett.pop_back(); // rimuove l'elemento letto
return top;
}
}