Я пишу код для сотовых автоматов, и мне нужна эволюционная функция для вычисления состояния автоматов после шага времени. Я решил вызвать эту функцию evol, чтобы проверить ее, я создал элементарную функцию в C++. К сожалению, он не компилируется, поскольку компилятор не может понять, что мне нужно, чтобы он возвращал массив. Вот код:C++ - Возвращает многомерный массив из функции
#include <iostream>
#include <cmath>
#include <vector>
#include <string>
using namespace std;
const int N = 51; // Size of the grid; two columns/rows are added at the beginning and the end of the array (no evolution of the CA on the boundaries)
class Cell{
//defining whats a cell here
};
void showCA(Cell CA[N+2][N+2]){
//function to print the CA grid in the terminal
}
Cell[N+2][N+2] evol(Cell CA[N+2][N+2]){
return CA;
}
int main()
{
// Initialisation
cout << "Initialisation" << endl;
static Cell CA[N+2][N+2];
// some code here to initialize properly the Cell array.
showCA(CA);
CA = evol(CA);
showCA(CA);
return 0;
}
Компилятор возвращает эту ошибку:
error: expected unqualified-id
Cell[N+2][N+2] evol(Cell CA[N+2][N+2]){
Любая идея о том, как я должен это реализовать?
используйте полуточку, чтобы исправить эту ошибку. Вы, вероятно, тоже хотите использовать векторы. –
Что представляет собой 'N'? У вас есть ряд любопытных заявлений в вашем коде. Чего вы хотите достичь наконец? –
Создайте класс для представления многомерного массива (возможно, как обертка для обеспечения 2D-адресации в 'std :: vector'). Верните экземпляр этого класса. –