-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