用數據初始化的最快/內存有效方式 a 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);
...
}
我需要EngineClass
持有其在main()
創建vectorOfLargeClass
矢量數據的副本。
我使用C++ 11,但我對語言並不完全熟悉,也許有更好的更標準的方法來完成這樣的任務。
你需要做一個*副本*或你可以*移動*你已經構建了什麼? – vu1p3n0x
我其實對移動和複製感興趣。移動速度比上述副本更快嗎? – Avithohol
@Avithohol根據定義,如果你移動*,沒有副本,所以..是的。沒有什麼比無限快的東西= P – WhozCraig