In reply to m_r_m:
You need to explain better what you are trying to accomplish.
You could certainly do
out_data_q[outdata.dst_addr]].push_front(outdata);
But that seems like you would be wasting a lot of space because the dst_addr of each queue element you be the same for each index of the queue.
It might help to explain with a few scenarios of data that need to be operated on.