在C++中返回多维数组的函数

use*_*607 5 c++ arrays function multidimensional-array

作为一名Java程序员,我很难获得一个返回多维数组的函数.我将如何在C++中编写代码?:

int[][] theFunction(){
  int[][] var = new int[3][3];
  // code
  return var;
}
Run Code Online (Sandbox Code Playgroud)

das*_*ght 6

在C++中,最简单的方法是这样的:

std::vector<std::vector<int> > theFunction() {
    std::vector<std::vector<int> > var(3, std::vector<int>(3));
    // code
    return var;
}
Run Code Online (Sandbox Code Playgroud)

您需要包含<vector>以便编译.与Java通用容器不同,C++模板容器不会产生将基元包装到对象中的成本,因此它们在性能和内存消耗方面可以保持极其高效,同时提供大量额外的灵活性.

在一般情况下,你应该更喜欢C++ -风格容器(std::vector,std::set,std::map,和C++ 11, std::array)他们不太灵活的内置方案"继承"自C.