【发布时间】:2014-03-12 03:23:15
【问题描述】:
我已经创建了一个队列列表,并且想知道如何才能将队列推回以添加新元素。我有多个客户端要向其发送消息,主机将按特定顺序向每个客户端发送完全相同的消息。我目前拥有它
struct messages
{
char buffer[64];
}
list<queue<messages>> MessageList;
for(int i = 0; i < numOfClients; i++)
{
queue<messages> tempQueue;
MessageList.push_back(tempQueue);
}
list<queue<messages>>::iterator MsgIt;
MsgIt = MessageList.begin();
messages storedMsg = {}
char tempMsg[64] = "This is the message to be stored!";
for(int j = 0; j < 64; j++)
storedMsg.message[j] = tempMsg[j];
for(int i = 0; i < numOfClients; i++)
{
*MsgIt.push(storedMsg);
MsgIt++;
}
似乎有一个错误,其中*MsgIt 不允许我访问push() 函数。
我明白了
queue<messages> MessageList;
MessageList.push(Message);
会起作用,但由于有多个客户端收到此消息,我希望在“队列列表”中使用它,而不是创建难以管理的 15-20 个左右的队列。
【问题讨论】:
标签: c++ list queue add elements