在c ++中如何从函数返回一个对象数组?
答案 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());
}