在c ++中如何从函数返回一个对象数组?

Dre*_*eur 1 c++ arrays

在c ++中如何从函数返回一个对象数组?

sse*_*vic 20

通过返回std :: vector.


Doc*_*own 5

myobject *myfunc()
{
    return new myobject[10];
}
Run Code Online (Sandbox Code Playgroud)

但要注意 - 您正在将数组的所有权转移给调用者,可能是导致内存泄漏的原因.

编辑:返回一个指向数组的指针比返回一个std :: vector快得多.如果你打算使用std :: vector(正如其他人写的那样),你可能更喜欢这样做:

void myfunc(std::vector<myobject> &result)
{
    result.resize(0);
    for(int i=0;i<10;++i)
       result.push_back(myobject());
}
Run Code Online (Sandbox Code Playgroud)