2011-03-08 7 views
0

J'écris un petit logiciel qui traite de la multidiffusion inter-processus. Pour chaque message, chaque processus, j'ai deux ou trois variables affectées au message lui-même:C++ struct et container

messageID 
senderID 
ack1 
ack2 
ack3 
... 

Je voudrais mettre ces éléments (qui sont nombreux) dans un récipient, de sorte qu'il est plus tard facile à effectuer des opérations telles que la modification de la valeur de ack1 pour un messageID donné (je devrais garder la trace des processus dans mon groupe m'a informé qu'ils ont reçu le message).

Quel est le meilleur contenant à utiliser dans ce cas?

Merci

+1

Vos identifiants uniques MessageID sont-ils associés à chaque message? – RedX

Répondre

1

Vous pouvez utiliser std::map ou boost::unordered_map (bientôt standard) que vous pouvez y accéder en identifiant de message.
La prochaine fois que vous voudrez répondre à une telle question, jetez un oeil à this diagram.

+0

Merci pour le schéma, aussi! :) – Danilo

+0

@Danilo La manière appropriée d'accuser réception d'une bonne réponse est un upvote dans stackoverflow. Vous êtes plus que bienvenus pour le faire :) –

1

En plus de std::map et boost::unordered_map, si vous prévoyez de parcourir les messages d'une donnée senderID vous pouvez utiliser boost::multi_index_container.

+0

ou il pourrait utiliser un multimap –