所以这是我的问题,因为我已经在互联网上查看了一段时间,但似乎无法获得明确的答案来使其工作。我正在使用控制台在 C++ 中创建一个简单的推箱子游戏。
首先,我很确定如果它是一个大数组,由于内存强度,将数组传递给函数不是一个好主意。一切都很好,这应该不是问题,因为我最多只有大约 32x41,而且我什至不会达到最大值。那么我应该传递整个数组还是传递指针?
其次,我的数组大小并不总是相同的。我不确定这是否是一个重要因素。
第三,如果我要传递指针,在开始使用它们之前如何创建/初始化它们。我的数组是按以下方式创建的:
string line;
string arr[30];
int i = 0;
char mazeArr[30][40];
int k, count;
if (mazeStream.is_open())
{
while ( mazeStream.good() && !mazeStream.eof() )
{
getline (mazeStream,line);
cout << line << endl;
arr[i] = line;
i++;
}
mazeStream.close();
cout << endl;
}
else cout << "Unable to open file";
for ( count = 0; count < 12; count ++)
{
string::const_iterator iterator1 = arr[count].begin();
k = 0;
while (iterator1 != arr[count].end())
{
mazeArr[count][k] = *iterator1;
iterator1++;
k++;
}
}
现在我想用这个二维数组做的是:
- 一次取一个元素并创建一个类的实例,具体取决于数组中的符号
- 将实例放入另一个数组中,该数组采用实例的类型
所以最后我会得到第二个实例数组,其中每个实例都依赖于我从第一个数组中获取的符号。同时保留相同的“坐标”
任何帮助将不胜感激,
谢谢