我知道这个特定主题有多个答案,但我还没有找到适用于我的用例的内容。
我有一个2D数组(9x9),我需要通过引用传递给一个函数,这样它就可以在函数完成之后存储在主程序中。
这是函数声明:
void ReadFile(ifstream& infile, string fileName, string filePath, int array[9][9]) // Opens, reads, outputs and closes the file
我打开的文件是一个9x9的数字网格,我需要将该网格存储到main中的局部变量(9x9整数数组)中。
有人知道我怎么能这样做吗?
詹姆斯
答案 0 :(得分:2)
如果您可以访问C ++ 11功能,我会放弃C风格的数组,转而使用C ++ std::array:
#include <array>
using Array = std::array<std::array<int, 9> 9>;
void ReadFile(ifstream& infile, string fileName, string filePath, const Array& array);
然后在你的函数中,你可以像任何其他变量一样copy这个数组。您还可以获得各种好处,例如size()
方法和迭代器访问。从cppreference(见上面的链接):
结构体结合了C风格的性能和可访问性 具有标准容器优点的数组,例如知道它 自己的大小,支持作业,随机访问迭代器等。