021
02.04.2006, 15:06 Uhr
0xdeadbeef
Gott (Operator)
|
Naja, die Hashfunktion kann Kollisionen ergeben, und besonders intuitiv ist das nicht zu benutzen, von daher ist die if-else-Konstruktion in aller Regel sinnvoller. Ansonsten, wenns unbedingt gemappt werden soll, halt zu komplexeren Sprachkonstrukten greifen, etwa:
C++: |
#include <iostream> #include <map> #include <string>
typedef void(*stringfunc)(std::string const &);
std::map<std::string, stringfunc> stringmap;
void output (std::string const &s) { std::cout << s << std::endl; }
void output_twice(std::string const &s) { std::cout << s << std::endl << s << std::endl; }
int main() { stringmap["Hallo"] = output; stringmap["Hello"] = output_twice;
for(std::map<std::string, stringfunc>::const_iterator i = stringmap.begin(); i != stringmap.end(); ++i) { i->second(i->first); } }
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |