Total members 11894 |It is currently Mon Nov 25, 2024 2:49 am Login / Join Codemiles

Java

C/C++

PHP

C#

HTML

CSS

ASP

Javascript

JQuery

AJAX

XSD

Python

Matlab

R Scripts

Weka





Im currently working with multimap in C++. So for example i got a multimap like
this:
Code:
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

Code:
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?




Author:
Proficient
User avatar Posts: 280
Have thanks: 1 time

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


Code:
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
Code:
("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

_________________
Please recommend my post if you found it helpful


Author:
Proficient
User avatar Posts: 228
Have thanks: 0 time
Post new topic Reply to topic  [ 2 posts ] 




cron





Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com