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

时间:2010-11-09 21:09:10

标签: c++ arrays

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

2 个答案:

答案 0 :(得分:20)

返回std :: vector。

答案 1 :(得分:5)

myobject *myfunc()
{
    return new myobject[10];
}

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

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

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