在C++中使用map来取代很多个if else和switch
利用map中的key和value键值对来取代if else效率会好不少。
#include <iostream>
#include <map>
#include <functional>
using namespace std;
int fun1(int a,int b){ return a + b;}
int fun2(int a,int b){ return a - b;}
int fun3(int a,int b){ return a * b;}
int fun4(int a,int b){ return a / b;}
int main() {
map<int,function<int(int,int)>> m_fun;
m_fun.insert(make_pair(1,fun1));
m_fun.insert(make_pair(2,fun2));
m_fun.insert(make_pair(3,fun3));
m_fun.insert(make_pair(4,fun4));
int a[4] = {1,2,3,4};
for(auto x : a)
{
cout<<m_fun[x](6,3)<<endl;
}
std::cout << "Hello, World!" << std::endl;
return 0;
}
第一次听说map的键值对用来替换很多if else和switch判断的时候,我很懵逼,map居然能和if else扯上关系????
去了解一下一下,好像在Java后端开发中,比如根据不同的抽奖卷去查询不同的数据库,抽奖卷类型很多,如果用if else来写,程序就会很长。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)