将向量的向量传递给函数
Passing vector of vectors to function
我有一个接受
的函数vector<vector<MyClass>>
并修改MyClass实例。我已经很长时间没有写c++了,我很难记起在这里用引用而不是用值传递整个参数是足够的。
我原来的方法签名是: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) { ... }
谁能强调一下这些记忆之间的差异?非常感谢!
简写
void modifyVectorOfVectors( vector< vector< MyClass > >& vec) { ... }
-
void modifyVectorOfVectors(vector<vector<MyClass> > vec) { ... }
复制包含内部向量 所有元素的外部向量 -
void modifyVectorOfVectors(vector<vector<MyClass*> > vec) { ... }
复制外部向量,其中包含所有内部向量,其中包含MyClass 的所有指针 -
void modifyVectorOfVectors(vector<vector<MyClass*>* > vec) { ... }
复制外部向量,包含所有内部向量的指针,内部向量包含MyClass 的指针 -
void modifyVectorOfVectors(vector<vector<MyClass*> *> vec*) { ... }
复制外部向量的指针,外部向量包含所有内部向量的指针,内部向量包含MyClass 的指针
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用向量的template_back函数
- 如何删除除 ArduinoSTL 的向量函数之外的所有函数
- 在使用标准向量函数时引发'std::bad_alloc'实例后调用的终止
- 我可以为向量函数返回 NULL<double> 吗?
- 将多个向量(函数结果)组合到一个使用模板中
- 如何在 c++ 中制作通用字符串到向量函数
- 为什么简单的C++向量函数会产生越界的下标
- 为什么我的向量函数的返回值总是 1
- 模板化向量函数参数的std::is_base_of
- 我的程序没有运行,多维向量函数
- C 如何使2D向量函数
- 如何从 v8 返回向量<T> C++ 函数
- C++ 如何使此向量函数接受任何分隔符
- 我想返回一个向量函数,<Competition>但被告知竞争是未声明的,并且我正在使用未定义的类'std::vector'
- C++:如何在类中使用向量函数
- 自己的"Insert"方法(向量)函数模板
- c++中的内存泄漏:循环中的向量函数
- 如何添加一个元素到一个向量函数
- 向量函数'at'