下图是老师在标准库中看到的一段代码的伪代码。问我们怎么优化。
老师说,c++程序员要对性能有敏感性。
有时候开源库性能进行了提升,并不一定是因为有了什么大改进,可能只是因为改进了类似下图中的代码而已。
在这里感谢群里的小伙伴帮忙提出很多宝贵的修改意见。
优化点:
1、用底层为hash表的unordered_map,而不是用底层是红黑树的map。查找和插入的时间复杂度会降低。
2、既然用了map,就不要用for循环来查找,直接用map.find()方法
3、尽量不使用=,会有不必要的临时变量。用move好一些。(偷偷查了一下,move是c++11的新特性,博主又发现了一片未知领域)
4、for循环的话,变量应尽量声明为引用
for (auto &obj : object)
不需要改变元素内容的话加上const就更好了