我如何在代码中实现动态2D数组

时间:2019-04-29 19:00:00

标签: c++ arrays pointers

我制作了一个程序,该程序采用这样的字符串[11 15 12 18;5 5 18 11;3 16 19 8;16 3 5 0],它代表一个矩阵,每个半冒号都位于行的末尾,所以我所做的就是将数字放入2d数组中,然后对 我需要它是一个动态数组,这是一个3 * 3数组,所以我该怎么做 我应该将其设为2D数组,最多可容纳100 * 100


string str1,str2;
string x;
string s1 = "[1 -2.5 3;4 5.25 6;7 8 9.12]";
string s2 = "[3 4.2 10.2;12 -1 0;67 2 13]";
string ns ;
float matrix1 [3][3];
float matrix2 [3][3];
float matrixsum [3][3];


string cutter(string &s) {
    s.erase(remove(s.begin(), s.end(), '['), s.end());
    s.erase(remove(s.begin(), s.end(), ']'), s.end());
    replace(s.begin(), s.end(), ';', ' ');
    ns = s;
return s;
}

void splitter(string x,float matrix[3][3]){

  stringstream os(x);
  string temp;

  for (int i=0;i<3;i++){

        for (int j=0;j<3;j++){

            if(os >> temp){

                 matrix [i][j] = atof(temp.c_str()) ;

            }

        }

    }

}

void showmatrix(float m[3][3]){
     cout <<"[" ;
    for (int i=0;i<3;i++){

        for (int j=0;j<3;j++){

            cout << m[i][j];
            if(j != 2){
                cout<< " " ;
            }
        }
        if(i != 2){
            cout << ";";
        }

    }

    cout << "]";
}

int main()
{
    return 0;
}

1 个答案:

答案 0 :(得分:0)

将矩阵表示为vector<vector<float>>