手机上的算法优化 —— 分支优化

2022/1/6 17:05:17

本文主要是介绍手机上的算法优化 —— 分支优化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

【前言】

        作为一个程序猿,if - else的使用会贯穿我们的整个职业生涯,但是有句话说的好,成年人不做选择题,那我们应该如何避免选择题呢?

【Show me the fucking code!】

if(condition 1) {
    分支流程1
} else if(condition 2) {
    分支流程2
}
 ……
else {
    分支流程n
}

【违反开放、封闭原则】: 新增一种判断时,会新增一个if-else分支

【函数表优化】

针对与上述原则,建议使用函数表结构

typedef bool (*ProcessFuncPtr)(const ItemState& current, ItemState& next);
struct ActionProcess{
    Action act;
    ProcessNextFuncPtr processFunc;
}

ActionProcess actMap[] =
{
    {FARMER_GO, ProcessFarmerGo},
    {FARMER_GO_TAKE_WOLF, ProcessFarmerGoTakeWolf},
    {FARMER_GO_TAKE_SHEEP, ProcessFarmerGoTakeSheep},
    {FARMER_GO_VEGETABLE, ProcessFarmerGoVegetable},
    {FARMER_BACK, ProcessFarmerBack},
    {FARMER_BACK_TAKE_WOLF, ProcessFarmerBackTakeWolf},
    {FARMER_BACK_TAKE_SHEEP, Proces


这篇关于手机上的算法优化 —— 分支优化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程