C++从入门到放弃

C++中 取代if else或者switch代码方法

2019-05-05  本文已影响0人  lixin_karl

利用function跟map来取代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;
}
上一篇 下一篇

猜你喜欢

热点阅读