考虑类型包
的队列queue < packet > buffer;
,其中
struct packet {
int src_id;
int dst_id;
int inter_dst_id;
bool phase;
};
现在,请考虑一下:
if (buffer[i].Front().inter_dst_id == local_id && buffer[i].Front().phase == true)
buffer[i].Front().phase = false;
但在上述情况下我不能写'阶段'。有可能吗?提前谢谢。
答案 0 :(得分:2)
答案 1 :(得分:0)
@juanchopanza:我无法使上述事情奏效。好像你无法修改队列的前面元素。相反,我使用了deque。
deque <packet> buffer;
然后,我将 buffer [i] .front 复制到临时变量。我更改了temp变量中的阶段。使用pop_front()
删除了 buffer [i] .front 。最后,使用push_front()
将修改后的阶段推送到temp变量。
我是stl的新手,因此花了一些时间。我不确定这是否是最好的方法,但它对我有用。