2011-11-14 15 views
5

で保存する構造体は、私は、構造体を持っている:C++:スタック

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

は、私は、スタック内の構造体のすべての値を格納したいです。

私が行うことで、スタックで一つの値を格納することができます:

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

を私は後のchar、int型、および、文字列にアクセスすることができますので、私は、スタック全体のstruct保存することができますどのように?

答えて

10

シンプル、ちょうどVehicleVehicleのインスタンスのstringのインスタンスのstringを置き換える:

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

母、私はそれが簡単ではないと信じられません。ありがとう! – Nick

6

<>間のタイプがあなたのスタックが保持するものです。 vはスコープの外に出るとき

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

はどうなるでしょう:stringの開催最初のものは、あなたがVehiclesを保持しているものを持つことができますか?私はヒープ上にオブジェクトを作成し、それらのスタックにポインタを格納するほうがいいでしょう:

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

私は単にstack.push({new Vehicle()})を実行できますか? –

+0

新しく作成されたオブジェクトへの明示的なポインタを使用するつもりはないので、あなたの構文が気に入っています。 – Vlad

0

gをスタックに挿入するにはどうすればよいですか?

#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); 
}