ifelse 与地图? [C++]

ifelse Vs Map? [C++]

void setParamater(std::string key, std::string value){
    if(key == KEYPARAM_1)
    {
       //Do something
    }
    else if(key == KEYPARAM_2)
    {
       //Do something
    }
    else if (key == KEYPARAM_3)
    {
       //Do something
    }
    else if (key == KEYPARAM_4)
    {
        //Do something
    }
    else if (key == KEYPARAM_5)
    {
       //Do something
    }
    else if (key == KEYPARAM_6) {
       //Do something
    }
    else
    {
        //Do something
    }
}
void setParamater(std::string key, std::string value){
      my_map(key, f(value)); //I'm not sure about the syntax in there
}

-仅供参考:每个案例都做了一些完全不同的事情,而不仅仅是二传手。

谢谢!

您不需要为 std::function 声明函数。另一种方法是使用 lambda。该 lambda 可以直接进入您的地图初始化。

看起来像

std::map<std::string, std::function<void(std::string)> funcs {
   std::make_pair(KEYPARAM_1, [](std::string s) { std::cout << s; },
   std::make_pair(KEYPARAM_2, [](std::string s) { /* something else */ }
}