Come far funzionare lo stack di template C ++ con tipi di dati di base e variabili composte?

0

I modelli sono piacevoli per algoritmi simili di diversi tipi di dati. Supponiamo che crei uno stack modello di un tipo di dati di base ...

Stack<int> stck(10);
stck.Push(5);

Lo popò ...

int x = stck.Pop();

x sarebbe 5. Se chiamo di nuovo pop, non ci sono elementi, quindi ho il metodo solo per restituire 0 per null. Potrebbe essere qualcos'altro, ma qualunque cosa.

Ma ora, se cambio il tipo di template in una variabile composta (un tipo di struttura - diciamo, RECT), e lo stack è vuoto, non può restituire 0. Si aspetta un tipo RECT, ma non lo faccio ne hai lasciato. Come faccio a fare questo lavoro per i tipi di dati di base e le variabili composte? Eccezioni?

    
posta Phil 18.04.2014 - 21:58
fonte

1 risposta

4

3 opzioni

rendi popping en emtpy stack indefinito e non ti preoccupare di esso

lancia un'eccezione

return default built T() (che capita di essere 0 per i tipi numerici)

    
risposta data 18.04.2014 - 22:03
fonte

Leggi altre domande sui tag