C ++:将结构存储在堆栈中

时间:2011-11-14 19:28:59

标签: c++ struct stack

我有一个结构:

    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和string?

4 个答案:

答案 0 :(得分:10)

简单,只需为string替换Vehicle,为string的实例替换Vehicle的实例:

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

答案 1 :(得分:6)

<>之间的类型是您的筹码所包含的内容。第一个持有string个,你可以拥有Vehicles

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

答案 2 :(得分:1)

当v超出范围时会发生什么?我猜你最好在堆上创建对象并在堆栈中存储指向它们的指针:

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

答案 3 :(得分: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); 
}