我有一个结构:
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?
答案 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);
}