在创建尺寸为其他两个矩阵大小的矩阵时超出范围

问题描述 投票:-1回答:1

假设我有两个称为A和B的矩阵,我想创建一个新的矩阵C,其中C的行数等于矩阵A和B的行数乘积.C的列数也相等到A和B的列数的乘积

当任何矩阵A或B是空矩阵时,我的程序不起作用。

我尝试将矩阵A和B的大小设置为不等于0的程序,程序运行正常。

  // this function "creates" and returns a matrix of the size mentioned in parameters



 vector<vector<int>> CreateMatrix (int number_of_rows, int number_of_columns) {
  return vector<vector<int>>(number_of_rows, vector<int> (number_of_columns));
 } 

  int main()
  {
    vector<vector<int>> a;
    vector<vector<int>> b;
    int no_rows = a.size() * b.size(); // multiplies no. of rows A and B
    int no_cols = a.at(0).size() * b.at(0).size(); // multiplies number of columns of A and B

   auto c = CreateMatrix(no_rows, no_cols).
   cout << c.size(); 

我希望程序打印“0”,因为这将是矩阵C的行数,而不是它崩溃。

c++ vector size
1个回答
0
投票
    vector<vector<int>> a;
    vector<vector<int>> b;
    int no_cols = a.at(0).size() * b.at(0).size(); // multiplies number of columns of A and B

在这里,您可以访问两个空向量的第一个元素,因此它自然会崩溃。

© www.soinside.com 2019 - 2024. All rights reserved.