大佬教的几个小技巧

发布于 2021-07-02  28 次阅读


背景

前两天林师傅带我做课设的时候,遇到了许多开发上的问题,最终林师傅发动他的算法知识,解决了其中的许多,记录如下

正文

课设需要实现一个计算器,计算的最终结果需要以分数显示,如果分母为1则显示为整数形式;

需要实现一个整数类和一个派生的分数类

同时需要一个栈存储用户输入的符号

最开始我的做法是定义两个函数

void pushFenZi();
void pushFenMu();

然后问题便来了

用户输入的数据长度不定,于是我这个实现需要定义一个Flag,通过确定符号是否输入来确定数据输入是否结束

除了一个数据以外,其余数据都是用两个符号包裹的;而第一个数据只有一个符号包裹,我有需要设置一个firstFlag

诸如此类,最终搞了六七个flag,if层数多得离谱

最终林师傅的改进办法和解决办法的几个要点如下

操作基类相同,但名称不同的两个实例时可以只需要维护一个指针

这样的好处是,如果实例数量不是两个而是一百万个,就会有极大的效率提升