C++ struct和container

问题描述:

我正在写一个处理进程间多播的小软件。对于每封邮件,在每个过程中,我有一对夫妇的分配给消息本身的变量:C++ struct和container

messageID 
senderID 
ack1 
ack2 
ack3 
... 

我希望把这些元素(这是很多)在一个容器中,使其以后容易执行操作,例如更改给定messageIDack1的值(我应该跟踪我的组中哪些进程通知我他们得到了该消息)。

哪种情况下最适合使用哪种容器?

感谢

+1

您的MessageID是每个消息的唯一标识符吗? – RedX 2011-03-08 14:56:19

您可能需要使用std::mapboost::unordered_map(很快将成为标准),你可以通过邮件ID访问它。
下次您只想单独回答这样的问题时,请查看this diagram

+0

感谢您的图表! :) – Danilo 2011-03-09 11:48:22

+0

@Danilo确认一个很好的答案的适当方法是在stackoverflow中的upvote。您不仅欢迎您这样做:) – 2011-03-09 20:09:35

可以使用地图可以轻松地通过messageID取的结构:http://www.cplusplus.com/reference/stl/map/

+0

他有很多消息。不是一个。 – 2011-03-08 14:42:23

+0

boost :: multi_map或C++ 0x multimap。 – RedX 2011-03-08 14:54:58

除了std::mapboost::unordered_map,如果你打算从给定senderID遍历消息,可以使用boost::multi_index_container

+0

或他可以使用多图 – 2011-03-08 16:00:37