-1
其實,我面臨一個代碼庫,並且有關於堆棧和堆的std::vector
的問題。是否在一個成員向量中存儲一個堆棧變量有效使用向量?
某處在一個成員函數我遇到類似這樣的代碼:
會員聲明:
//member variable in DataHelper class
std::vector<Data::Point> mDataPoints;
成員函數:
void DataHelper::LoadData(int nPoints)
{
//mDataPoints is a member variable
mDataPoints.reserve(nPoints);
for (UINT i = 0; i < nPoints; i++)
{
Data::Point point; //some data class
point.X = 1; //dummy values
point.Y = 2;
point.Z = 3;
mDataPoints.push_back(point);
}
}
所以Data::Points
存儲在矢量以後使用。
我認爲Data::Point point;
被分配在堆棧上,並且從這個意義上說它的存儲在以後使用會導致錯誤。這是正確的嗎?
啊我看到了,並感謝複製構造函數/指針上的頭! – Stefan