1
當使用原始指針我能做到這一點:如何使用智能指針從文件讀取數據塊?
std::vector< Vector3* > vertices;
Vector3* v = new Vector3[amount];
fread(v, sizeof(Vector3), amount, file);
for (int i = 0; i < amount; ++i)
vertices.push_back(&v[i]);
現在,如何做智能指針一樣呢?我被試過這樣的事情:
std::vector< std::unique_ptr<Vector3> > vertices;
std::unique_ptr<Vector3>* v = new std::unique_ptr<Vector3>[amount];
fread(v, sizeof(Vector3), amount, file);
for (int i = 0; i < amount; ++i)
vertices.push_back(std::move(v[i]));
delete [] v;
它有什麼意義嗎?它編譯,它的工作原理,但恐怕最後的指令(delete [] v;
)是正確的?
我是個瞎子。感謝您向我展示我甚至不需要任何指示;) – Tom