J'ai un code:tampon pour la file d'attente question
une déclaration d'une file d'attente:
typedef deque<char*, allocator<char*> > CHARDEQUE;
typedef queue<char*,CHARDEQUE> CHARQUEUE;
CHARQUEUE p;
size_t size_q;
char recv_data[1024];
J'utilise un socket udp pour recevoir des données d'une machine distante:
c'est le boucle:
while (1)
{
bytes_read = recvfrom(sock,recv_data,1024,0, (struct sockaddr *)&client_addr, &addr_len);
p.push(recv_data);
size_q=p.size();
printf("%d\n",size_q);
}
mais le problème est que je ne peux pas copier des données dans ma file d'attente qui est ce que je veux, je pourrais juste pointer t à cela ... quelqu'un peut-il aider à cela?
Pour plus d'informations, mon programme reçoit des données brutes, c'est pourquoi j'utilise char array .. des idées comment résoudre ce problème?
Dans ce cas, il est probablement utile de faire le chèque pour éviter de pousser des vecteurs vides sur la file d'attente. –
Pouvons-nous utiliser la file d'attente au lieu de dequeue ... et pourriez-vous me dire la différence entre eux? – fsidiosidi
a 'std :: queue' est un wrapper autour d'un autre type de conteneur, et par défaut c'est un' std :: deque'. Si j'avais le choix, j'utiliserais 'std :: deque' directement - mais c'est ma préférence je suppose ... – Nim