私は受け入れる機能を持っています
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) { ... }
誰かがこれらすべてのメモリの違いを強調できますか? どうもありがとう!