I have a function which accepts a
vector<vector<MyClass>>
并修改了MyClass实例。我已经很久没有写C ++了,我很难记得在这里通过引用而不是按值传递整个arg的足够条件。
我的原始方法签名是:
void modifyVectorOfVectors(vector<vector<MyClass> > vec) { ... }
我希望让这个程序更加内存高效,因此我最初将它改成了:
void modifyVectorOfVectors(vector<vector<MyClass*> > vec) { ... }
然后我意识到这意味着我的vec值仍将复制所有内部向量。因此,我将函数签名更改为:
void modifyVectorOfVectors(vector<vector<MyClass*> >* vec) { ... }
这样就足够了,还需要像这样做些什么吗:
void modifyVectorOfVectors(vector<vector<MyClass*>* >* vec) { ... }
有人能够强调一下这些之间的内存差异吗?非常感谢!
using
会更好 :) - FToDance