2011-03-08 9 views
0

저는 프로세스 간 멀티 캐스트를 처리하는 작은 소프트웨어를 작성 중입니다. 그것은 나중에 쉽게 있도록C++ 구조체 및 컨테이너

messageID 
senderID 
ack1 
ack2 
ack3 
... 

가 나는 용기 (많다) 이러한 요소를 넣어 싶습니다 : 각 메시지에 대해, 각 프로세스에, 나는 메시지 자체에 할당 된 변수의 몇 가지있다 주어진 messageID에 대한 ack1의 값을 변경하는 것과 같은 작업을 수행합니다 (내 그룹에서 어떤 프로세스가 메시지를 받았는지 추적해야합니다).

이 경우 가장 적합한 컨테이너는 무엇입니까?

감사

+1

메시지마다 고유 한 식별자가 있습니까? – RedX

답변

1

당신은 사용 할 수 있습니다 std::map 또는 boost::unordered_map (곧 표준 예정)는 메시지 ID로 액세스 할 수있다.
다음 번에 그러한 질문에 답하고 싶다면 this diagram을 살펴보십시오.

+0

다이어그램을 주셔서 감사합니다. :) – Danilo

+0

@ Danilty 좋은 답변을 인정하는 적절한 방법은 stackoverflow upvote입니다. 당신은 환영 할 가치가 있습니다 : –

1

쉽게 messageID에 의해 구조를 가져올지도를 사용할 수 있습니다 http://www.cplusplus.com/reference/stl/map/

+0

그는 많은 메시지를 가지고 있습니다. 하나도 아닙니다. –

+0

boost :: multi_map 또는 C++ 0x multimap. – RedX

1

std::mapboost::unordered_map 외에도 주어진 senderID의 메시지를 반복하려는 경우 boost::multi_index_container을 사용할 수 있습니다.

+0

또는 그는 멀티 맵을 사용할 수 있습니다. –