|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
[c++] differenza pila stack o con lista
Qual'è la differenza tra una pila dichiarandola stack <type> mystack; e una pila ereditata da una lista?
Class pila : public list<type> ?? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
Up
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
La differenza è che la prima è uno stack propriamente detto ovvero struttura dati che ha un funzionamento di coda LIFO. La seconda è solo un nome di variabile, non è una struttura dati che si comporta come uno stack solo perchè si chiama "pila"! La classe list implementa una lista doppiamente linkata senza accessi diretti agli elementi, tra l'altro derivando pubblicamente esponi le funzionalità di list quindi non avresti un comportamento da stack...
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12860
|
Secondo la documentazione C++ std::stack funziona da wrapper per altri tipi di dato su cui implementare le classiche funzioni stack (push, pop):
http://www.cplusplus.com/reference/stack/stack/ Di fatto puoi implementare uno stack con una lista collegata o un vettore, infatti è quello che si fa generalmente. Usando la classe stack sei sicuro che puoi usare solo ed esclusivamente le operazioni consentite per una struttura dati di quel tipo, e questo consente di minimizzare eventuali errori. Ergo: se vuoi uno stack usa la classe stack. Ultima modifica di WarDuck : 19-06-2014 alle 19:28. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
Ho capito. Forse meglio ereditare private la list e non pubblic !
Comunque ho capito che mi hanno fatto implementare la classe coda a scopo didattico... |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
[c++] differenza pila stack o con lista
Ma quello che non capisco è: se dichiaro una classe pila o coda.. Poi posso usarla come contenitore normalmente?
Tipo la classe: Codice:
class miaPila{
....
};
Codice:
miaPila <int> pila; |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Ti giro la domanda: visto come hai dichiarato la classe miaPila, in quale maniera potresti fare una dichiarazione come quella che hai scritto: miaPila<int> pila; ??? |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12860
|
Sono d'accordo, forse sarebbe meglio prendere in mano un libro e seguire "teoria" ed esempi.
Essendo stato smanettone capisco bene che spesso è più divertente (a volte anche più istruttivo) mettersi a programmare direttamente, ma un minimo di costrutti sintattici servono, specie per rispondere alla tua domanda. Cioè se vuoi fare X, almeno cerca di vedere su un libro se è spiegato come fare X. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:39.




















