If there are no memory constraints you can create a temporary map of key
& valueInfo.

 

valueInfo can be a structure like following...

 

Struct valueInfo

{

            int val_total;

            int count

}

 

Now you can fill this map while traversing your original data structure
(multimap) ...

 

For your example it will be

("a", (6,2))

("b", (13,3))

("c", (2,1))

 

 

Once you have traversed the original data structure, you can calculate
the desired output with a single traversal of your temp map.

 

So it will be Loop after Loop solution instead of yours Loop in Loop 

 

 

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
Of Jos Timanta Tarigan
Sent: Thursday, October 16, 2008 5:56 PM
To: [email protected]
Subject: [c-prog] Multimap iteration

 

Hi, 

Im currently working with multimap in C++. So for example i got a
multimap like this:

m.insert(pair<const char* const, int>("a", 1));
m.insert(pair<const char* const, int>("c", 2));
m.insert(pair<const char* const, int>("b", 3));
m.insert(pair<const char* const, int>("b", 4));
m.insert(pair<const char* const, int>("a", 5));
m.insert(pair<const char* const, int>("b", 6));

and i want to loop it but without repeating the same key eg: I want to
print average of each key and print like this

a = 3
b = 6.3
c = 2

My current solution is loop each key and find all other value with the
same key. So its like a loop in loop. But the problem is I print a
twice, b three times, and C once. How can I skip the repetition so it
wont print the same key again? 

Thank you

 



[Non-text portions of this message have been removed]

Reply via email to