有些语言只能声明一个函数返回一个像普通函数一样的数组,比如Java:
public String[] funcarray() {
String[] test = new String[]{"hi", "hello"};
return test;
}
Run Code Online (Sandbox Code Playgroud)
为什么C++不支持这样的东西int[] funcarray(){}?你可以返回一个数组,但是制作这样一个函数真的很麻烦.而且,我听说字符串只是char的数组.所以如果你能用C++返回一个字符串,为什么不用数组?
嗨,我是C++的新手,我试图从一个函数返回一个二维数组.就是这样的
int **MakeGridOfCounts(int Grid[][6])
{
int cGrid[6][6] = {{0, }, {0, }, {0, }, {0, }, {0, }, {0, }};
return cGrid;
}
Run Code Online (Sandbox Code Playgroud) 我需要编写一个包装类,为数据类的字段提供"get"方法.但是,我不知道编写"getter"来返回2D数组的语法.例如:
#include <iostream>
class Data {
public:
double array[2][2];
};
class Wrapper {
private:
Data* dataptr;
public:
Wrapper(Data* data) : dataptr(data) {}
// compile error: "cannot convert ‘double (*)[2]’ to ‘double**’ in return"
double** getarray() { return dataptr->array; }
// compile error: "‘getarray’ declared as function returning an array"
//double* getarray()[2] { return dataptr->array; }
// this works, but what is auto resolved to?
//auto getarray() { return dataptr->array; }
};
int main() {
Data d;
d.array[0][0] = 1;
d.array[0][1] …Run Code Online (Sandbox Code Playgroud) 我想使用从函数返回的二维int数组我应该如何定义函数返回值?我使用int**但是编译器给出了错误:
int** tableCreator(){
int** table=new int[10][10];
for(int xxx=1;xxx<10;xxx++){
for(int yyy=1;yyy<10;yyy++){
table[xxx][yyy]=xxx*yyy;
}
}
return(table); //Here:cannot convert from 'int (*)[10]' to 'int **'
}
Run Code Online (Sandbox Code Playgroud)