我正在使用c ++。
我在函数多维向量中创建了一个新数组。值“size1”和“size2”来自另一个函数。 问题是: 如何重命名“void”让我从我的函数返回数组?
void makearray(int size1, int size2) // Yup, it shouldn't be 'void' but... what?
{
vector<int> x(size1);
vector<vector<int> > array(size2, x);
//working on array
return array;
}
答案 0 :(得分:1)
只需为要返回的类型命名:
vector<vector<int> > makearray(int size1, int size2)
或者使用typedef使其更具可读性:
typedef vector<vector<int> > matrix_type;
matrix_type makearray(int size1, int size2)
答案 1 :(得分:0)
您无需为此创建功能。在C ++ 11中,std::array类型存在,根据ref。 使用此类型将获得Size1和Size2维度的多维数组:
array<array<int, Size1>, Size2> multiDimensionalArrayInstace;
更酷,使用C ++ 11和Type aliasing,你可以做到
template <class InnerType, size_t Size1, size_t Size2>
using Matrix = array<array<InnerType, Size1>, Size2>;
允许您实例化
Matrix<int,4,2> b;
等同于
array<array<int, 4>, 2> b;