我正在用C ++编写代码并利用该库。 我的代码是这样的:
struct request {
int order;
float size;
};
typedef struct request req;
.. ...
std::queue <req> wait_queue;
// ...
for (int i = 0; i < 5; i++) {
req r;
r.order = i + 1;
r.size = 100;
wait_queue.push(r);
}
// ...
if (!wait_queue.empty()) {
req r = wait_queue.front();
// do something...
}
req r
不冲突的地方,因为实际上它们是在不同的函数中定义的。
现在,我知道变量已正确保存,因为当我运行gdb
并键入p wait_queue
时,它会显示:
(gdb) $1 = std::queue wrapping: std::deque with 5 elements = {{order = 1, size = 100}, {order = 2, size = 100}, {order = 3,
size = 100}, {order = 4, size = 100}, {order = 5, size = 100}}
但是在r = wait_queue.front()
之后,p r
显示:
(gdb) $2 = {order = 6417952, size = 0}
所以我想知道这是怎么发生的,我该怎么做才能确保r
握住{order = 1, size = 100}
。
谢谢!