OI心得::学会经常使用类,重载运算符和库。

来源:互联网 发布:网络电视32寸多少钱 编辑:程序博客网 时间:2024/06/05 11:20

前不久遇到了一道关于高精度的题,结果被虐的很惨。在这里,我对@snacking在湖南师大附中的洛谷团队上发布了这道题表示感谢。
在尝试解题的过程中我尝试了比较传统的基于过程的解决方案,结果30分;然后我又尝试了基于函数的解决方案,然后80分躺枪。
最后,我尝试了百度百科上面的基于结构体和运算符重载的解决方案,结果轻松AC,并且效率达到了AC结果中的最高水平:耗时:6ms;内存:16.4mb;比最佳算法就内存高了点(0.1mb)。
可见使用这种方法是十分可取的。
然后,就是不停地看代码,理解代码了。
我们竞赛老师说什么竞赛不需要什么面向对象的编程技巧。其实不然。事实上,学会如何去使用类,重载运算符以及库,能够使我们的程序更加简洁,高效。我记忆最深刻的就是pb_ds库,在这个库里提供的排序函数比STL中的sort要高效的多。因为库里面的函数都是封装的,因此而我们用库进行编程时,代码会简洁明了很多。我就曾碰到过一个题目,自己手写代码用了近百来行,用pb_ds库却只需要短短十几行。并且效率还特别高。
学会并经常使用类和重载用算符还有利于对程序进行维护。因为并不是你随便写几个代码就一定能编译成功并AC的,难免会遇到一些问题。利用封装,你可以迅速查出是哪个部位出现了问题,从而快速地进行优化程序。
封装还有一个好处,那就是便于程序的编写。由于是封装的,所以你完全可以将编程模块化。先将程序的框架搭起来,再对细节进行补充。用这样的方式,不但快速,而且有助于降低程序员的错误率。
总而言之,我们要学会经常使用类,重载运算符和库,使我们的OI水平跟上一层楼。

0 0