c++ - Using a map as "Phonebook" -


i have code similar this

enum days { monday, tuesday, wednesday, thursday, friday, saturday, sunday };  typedef void (*dailyfunction)(int);  namespace dailyfunctions {     void monday(int somedata);     void tuesday(int somedata);     void wednesday(int somedata);     void thursday(int somedata);     void friday(int somedata);     void saturday(int somedata);     void sunday(int somedata); } 

and somewere else in code use switch statement assign 1 of dailyfunctions dailyfunction ptr. when typing (more or less) same switch statement third time, had idea, great have map

std::map<days, dailyfunction> myphonebookmap 

which allow me this:

dailyfunction function_ptr = myphonebookmap[weekday]; 

to me seems, optimal place define such map in namespace dailyfunctions under function-declarations

but how can define const map there (since shouldnt change) , populate @ same time?

you can use boost function boost::assign::map_list_of or use copy constructor initialize const map constructed map:

#include <map>  int main() {     std::map<days, dailyfunction> m;     m[ monday] = &monday;     //... initialize m entries     std::map<days, dailyfunction> const mc( m);     //...     return 0; } 

Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -