分配给向量的对象的范围

scope of object allocated to vectors?

本文关键字:对象 范围 向量 分配      更新时间:2023-10-16

I下面的代码,你能告诉我函数getObjects()中点对象的范围是否有效吗。我在createObj()中创建对象,所以对象"p"的范围被限制为createObj。。。。vector使用复制构造函数来处理这个问题吗?

void getObjects()
{
    vector<point> vec;
    creatObj(vec);
    // getting correct output for object allocated in vector vec.
}
void createObj(vector<point> &vec)
{
    point p;
    p.x=10;
    p.y=20;
    vec.push_back(p);
}
这一切都很好,因为createObj中的push_back调用创建了一个副本

由于没有将指针传递到向量中,因此是安全的。如果您正在传递指针,则需要确保指针所指向的内容在需要时保持有效。