std::vector
クラスのメンバー変数を持つを初期化する最も高速でメモリが有効な方法は何ですか?ここで大規模なデータセットを持つクラスメンバーベクトルを初期化する最も効率的な方法
は、私が思い付くことができたものです。
class LargeClass
{
//lot of data, with long running constructor to initialize them
}
class EngineClass
{
public:
EngineClass(const vector<LargeClass>& vectorOfLargeClass)
{
mVectorOfLargeClass = vectorOfLargeClass; //Here is what I was able to come up
}
private:
vector<LargeClass> mVectorOfLargeClass;
}
int main()
{
vector<LargeClass> vectorOfLargeClass;
...
//fill vectorOfLargeClass with a lot of data
...
EngineClass engine(vectorOfLargeClass);
...
}
私はmain()
で作成されたvectorOfLargeClass
ベクトルのデータのコピーを保持するためにEngineClass
を必要としています。
私はC++ 11を使用しますが、私は言語に完全に慣れていないよ、多分、このような作業を行うためのより良い、より標準的な方法があります。
必要がありますかあなたはすでに作ったものを移動することができますか? – vu1p3n0x
私は実際に移動とコピーの両方に興味があります。上記のコピーよりも移動が速いですか?定義により、 – Avithohol
@Avithoholは、ええ...何のコピー場合*移動*、そうはありません。何も無限に速いものはありません= P – WhozCraig