Создание 2d массива в структуры [дубликат]

Обновить

November 2018

Просмотры

411 раз

0

Я хочу, чтобы создать матрицу-структуру, но я с трудом инициализации 2d массив

1:

struct Matrix{
int r, c;
Matrix(int r, int c){
    this->r=r;
    this->c=c;
    for(int x=0;x<r;x++){
        for(int y=0;y<c;y++)
            matrix[x][y]=0;
    }
}
vector <vector<float>> matrix;
}; 

2:

struct Matrix{
int r, c;
Matrix(int r, int c){
    this->r=r;
    this->c=c;
    for(int x=0;x<r;x++){
        for(int y=0;y<c;y++)
            matrix[x][y]=0;
    }
}
//int matrix[r][c]; I don't know how to do this
};

и я, наконец, закончил с рабочим одного использованием указателей

struct Matrix{
float **matrix;
int r, c;
Matrix(int r, int c){
    this->r=r;
    this->c=c;
    matrix = new float*[row];
    for(int x=0;x<row;x++){
        matrix[x]= new float[c];
        for(int y=0;y<col;y++)
            matrix[x][y] = 0;
    }
}
~Matrix(){
    for(int x=0;x<row;x++)
        delete[] matrix[x];
    delete[] matrix; 
cout<<"Matrix deleted"<<endl;   
}
};

Является 2d массив сделал 3-кодом, равным нормальному 2d массив, например, как этот?

const int row=10, col=10;

int main(){
float matrix[row][col]={0};
}

Есть ли лучше создать 2d массив в структуры? и это хорошо, чтобы изменить значение матрицы, созданную с использованием указателей?

0 ответы