在堆栈中存储结构体
C++: Storing structs in a 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?
简单,只需将string
替换为Vehicle
,将string
实例替换为Vehicle
实例:
stack< Vehicle > stack; // STL Stack object
Vehicle v; //vehicle struct object
stack.push(v);
<
和>
之间的类型是你的堆栈将保存的类型。第一个保存string
s,你可以有一个保存Vehicles
:
std::stack<Vehicle> stack;
Vehicle v;
stack.push(v);
当v超出作用域时会发生什么?我猜你最好在堆上创建对象,并在堆栈中存储指向它们的指针:
void Foo(Stack <Vehicle>& stack) {
Vehicle* vPtr = new Vehicle();
stack.push(vPtr);
}
相关文章:
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 包含 std::list 的结构体的 C++ 初始化
- 结构体和类的不同大小(),彼此具有相同的字段类型
- 如何使用结构体的向量数组?
- 如何使用结构体在C++中更改这些代码?
- 无法在 Mosquitto MQTT Broker 插件上访问结构体 mosquitto 的元素
- 我应该如何在C++中使用结构体解决输入失败的问题?
- Qsort() 比较结构体整数的总和
- C++ 如何在包含两个变量的结构中存储与变量不同数量的值?
- 如何使用迭代器指向结构体c++的向量
- 从std::vector存储到std::set,其中vector包含一个结构体,而std::set只包含该结构体中的一个
- 存储结构体的向量
- 在堆栈中存储结构体
- 当从固定结构体中存储的对象构建函数时,c++ lambda构建静态函数返回意外值
- 为什么结构体可以存储自己的大小?
- 如何在动态二维数组中存储数据,在结构体中声明,该结构体也被c++中的另一个结构体使用
- 使用CFDictionarySetValue()将结构体存储为值
- 如何在一个结构体中为多个函数全局存储数据