如何创建一个返回数组的函数

ras*_*435 1 c++ arrays visual-c++ c++11

我想知道如何原型化一个返回数组的函数,该数组也接受一个数组.在对数组进行原型设计之后,我该如何实现它

它是否正确?

coffee* getData(*coffe);

int main() {
    coffee cf[256];
    coffee FinalCoffee[256];
    FinalCoffee=getData(cf);
}

coffee getData(coffee objcf[]) {
    for(int i=0;i<SIZE;i++) {
        objcf[i].brand="nescafe";
    }
    return coffee;
}
Run Code Online (Sandbox Code Playgroud)

Plsease就此提出建议.我需要能够返回数组,以便我可以将更新的数组传递给另一个函数来处理它.

Kon*_*lph 5

您的代码甚至没有匹配的声明和函数定义.这不起作用.

但以下是:

std::vector<coffee> getData(std::vector<coffee> const& objs) {
    std::vector<coffee> result;
    // Do something to fill result
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果在您的示例中,您想要操作原始数组,而不是返回一个新数组,那么根本没有返回值更有意义,并将该参数作为非const引用传递:

void manipulateData(std::vector<coffee>& objs) {
    for (auto& obj : objs)
        obj.brand = "nescafe";
}
Run Code Online (Sandbox Code Playgroud)

根据经验,尽量避免C数组支持C++标准库容器.这将使您的生活更加轻松.