【发布时间】:2013-09-24 23:01:08
【问题描述】:
我想将一个巨大的 stl 向量传递给 C++ 中的函数,当我按值传递时,它是否会在内部复制巨大的向量?我不清楚按值传递和按引用传递在内存分配方面有何不同。引用传递是否更节省内存?我应该只将那个巨大向量的指针传递给函数,以便节省大量内存吗?
有人可以向我解释以下三种情况在记忆方面的差异吗? 假设 obj 很大。
1. func(vector<obj> )
2. func(vector<obj>*)
3. func(vector<obj*>)
【问题讨论】:
-
3 传递的东西与 1 和 2 不同。你需要不同的向量,所以它不一样(或者是第 4 个选项向量
*)。前两个选项已经详细讨论过,即上面的链接。 -
仅供参考,这里也不是传值。
-
^ 参考,我的意思是“两者都不是通过参考传递”