码迷,mamicode.com
首页 > 编程语言 > 详细

C++中STL容器类型做函数不使用引用导致程序效率下降

时间:2015-05-02 12:30:56      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:stl   c++   递归   引用做参数   

最近刷算法题,发现一个问题:

我是用递归实现一个算法,但在函数TreeNode * createTree(vector<int> &num, int left, int right)

一开始使用了TreeNode * createTree(vector<int> num, int left, int right),结果总是超时,

在网上找了一些别人写的算法,发现都是那样实现的,最后发现了是函数的参数类型不同,

别人使用vector类型做参数时,传递的是引用,而我直接使用了函数的形参,从而导致,每次函数递归,都要将整个num数组的值都要复制,从而大大影响了程序的效率

最后改成了使用引用,结果程序效率大大提高!


总结:

在c++中,涉及到vector, queue, stack等做参数时,一定要使用&做参数,否则需要进行数据的拷贝,导致整个程序的效率下降很多!

C++中STL容器类型做函数不使用引用导致程序效率下降

标签:stl   c++   递归   引用做参数   

原文地址:http://blog.csdn.net/jisuanji_wjfioj/article/details/45438567

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!