Should I implement this using string hash or multimap..
I need to implement the following. Shoul I use multimap or write a string
hash class? ie
Brand Product
==========================
Samson Television
Samsung Television
Samsung VCR
Samsung DVD Player
Samsunk Television
The brand is the key and the product is the data.
If I use multimap, then I can implement it using something like this
typedef std::multimap<string, string> mmap;
typedef std::multimap<string, string>::iterator mapIter;
mmap product_map;
product_map.insert( pair<string, string> string a(Samsung), string
b(Television));
...
...
...
To find the product in brand, all I have to do is iterate using lower and
upper bound.
mapIter lowerB = product_map.lower_bound("Samsung");
mapIter upperB = product_map.upper_bound("Samsung");
for (lowerB; lowerB != upperB; ++lowerB) {
string p = (*lowerB).second;
if ( strcmp (p.c_str(), "VCR") == 0 ) ) {
//do something
} else {
//do something
}
}
Assume that I have a lot of data. Is this implementation efficient? I know
using string as the key is not a good idea. Is there a better way to do
this? Is the performance better using hash? How do I implent the hash
function.
Thanks in advance..
-Jonny
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]