C++中STL容器类型做函数不使用引用导致程序效率下降
2015-05-02 11:23
330 查看
最近刷算法题,发现一个问题:
我是用递归实现一个算法,但在函数TreeNode * createTree(vector<int> &num, int left, int right)
一开始使用了TreeNode * createTree(vector<int> num, int left, int right),结果总是超时,
在网上找了一些别人写的算法,发现都是那样实现的,最后发现了是函数的参数类型不同,
别人使用vector类型做参数时,传递的是引用,而我直接使用了函数的形参,从而导致,每次函数递归,都要将整个num数组的值都要复制,从而大大影响了程序的效率
最后改成了使用引用,结果程序效率大大提高!
总结:
在c++中,涉及到vector, queue, stack等做参数时,一定要使用&做参数,否则需要进行数据的拷贝,导致整个程序的效率下降很多!
我是用递归实现一个算法,但在函数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入门教程(1)——vector(向量容器)的使用(附完整程序代码)
- C++ STL入门教程(1)——vector(向量容器)的使用(附完整程序代码)
- C++ STL入门教程(1)——vector(向量容器)的使用(附完整程序代码)
- c++ 提高4 map容器 共性机制 使用时机 比较| STL算法 算法基础仿函数 谓词 函数适配器 遍历算法
- c++ STL 常用容器元素类型相关限制 指针 引用
- 关于C++ map容器的使用和pair类型及函数
- C++ STL入门教程(1)——vector(向量容器)的使用(附完整程序代码)
- 2.关于C++ map容器的使用和pair类型及函数《二》
- C++ STL中容器部分 有关deque(双端数组形式)的初始化 元素插入 遍历 以及distance()函数的使用 20180322day12
- C++ STL vector(向量容器)的使用(附完整程序代码)
- 【C++】动态内存管理(五)使用STL容器进行大量的动态内存管理
- C++ STL基本容器的使用
- C++ STL入门教程(2) list双向链表使用方法(附程序代码)
- C++ STL入门教程(1) vector向量容器使用方法
- C++STL中全排列函数next_permutation的使用
- C++学习14:使用typedef定义函数指针类型
- C++中使用pthread.h头文件报错 - 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用
- C++ STL 容器之栈的使用
- C++ STL 中 map 容器的说明和使用技巧
- C++ STL基本容器的使用