【发布时间】:2011-12-13 10:13:21
【问题描述】:
我想构建一个函数,它接受一个多维数组并像网格一样打印它。我遇到了麻烦,因为 c++ 不允许函数具有多维数组参数,除非您指定它的长度。这里有一个关于它的问题,使用向量回答了。我还没有学会如何使用向量,所以请不要在答案中使用它们,或者如果你这样做的话,至少提供一个很好的教程。
无论如何,我想知道是否可以在 c++ 中返回一个数组...我开始使用 javascript 编程,所以我想到的第一个解决方案是做类似的事情
int gen(int len){
return int arr(int a[][len]){
cout << a[0][0];
};
}
我知道这行不通,我试过了,当它不起作用时我并不感到惊讶。有没有办法做这样的事情?
【问题讨论】:
-
这需要你一个小时的阅读和一个小时的实验来学习如何使用向量。或者,您可以花很多时间编写自己的类来处理所有未构建原生数组的细节。我认为,如果最好的解决方案是您尚未学习的解决方案,那么最好花时间学习它。 cplusplus.com/reference/stl/vector 或 yolinux.com/TUTORIALS/LinuxTutorialC++STL.html 数组很有用,但有更强大的工具可用,通常最好利用它的力量,除非你有充分的理由不这样做。
-
@DavidO STL 向量虽然不支持多维数组......(vector
> 并不真正计数,因为它仍然是一个一维数组,只是具有一个项目类型也是一个 1D 数组;特别是它不像请求的 2D 网格,除非您自己手动调整所有 vector 的大小) -
@DavidO 感谢您提供指向 yolinux 教程的链接;)
标签: c++ arrays multidimensional-array return return-value