2011-11-14 22 views
5

que tiene una estructura:C++: Almacenamiento de estructuras en una pila

struct Vehicle 
{ 
    char ad; // Arrival departure char 
    string license; // license value 
    int arrival; // arrival in military time 
}; 

quiero para almacenar todos los valores de la estructura en una pila.

puedo almacenar un valor en la pila haciendo:

stack<string> stack; // STL Stack object 
    Vehicle v; //vehicle struct object 
    stack.push(v.license); 

¿Cómo puedo almacenar en su conjunto la estructura de la pila por lo que más tarde puede acceder a la char, int, y, cuerda?

Respuesta

10

simple, basta con sustituir string para Vehicle y una instancia de string para una instancia de Vehicle:

stack<Vehicle> stack; // STL Stack object 
Vehicle v; //vehicle struct object 
stack.push(v); 
+0

Jaja, no puedo creer que fuera tan simple. ¡Gracias! – Nick

6

El tipo entre el < y > se lo llevará a cabo su pila. La primera de ellas celebrada string s, que puede tener uno que tiene Vehicles:

std::stack<Vehicle> stack; 
Vehicle v; 
stack.push(v); 
1

lo que sucedería cuando v se sale del ámbito? Supongo que será mejor que creó objeto en el montón y almacena punteros a ellos en su pila:

void Foo(Stack <Vehicle>& stack) { 
    Vehicle* vPtr = new Vehicle(); 
    stack.push(vPtr); 
} 
+0

¿Puedo hacer stack.push ({new Vehicle()})? –

+0

Me gusta su sintaxis ya que especifica que no tiene la intención de utilizar punteros explícitos a un objeto recién creado. – Vlad

0

¿Cómo podría empujar g de pila?

#include<iostream> 
#include<stack> 
using namespace std; 
struct node{ 
    int data; 
    struct node *link; 
}; 

main(){ 
    stack<node> s; 
    struct node *g; 
    g = new node; 
    s.push(g); 
}