これまでのところ、1 次元ベクトルを使用して、プッシュ/ポップ バックで要素を追加または削除することができました。しかし、行列を表すはずの 2 次元ベクトルを入力しようとすると、問題が発生します。これらの機能を 2 次元ベクトルで使用できませんでした。コードがコンパイルおよび実行されると、次元を要求するビットを取得し、最初の要素 [1,1] を要求します。入力された値に対して、「セグメンテーション エラー: コア ダンプ」が表示されます。何が起こっているのかわからず、コードの一部を変更しようとしましたが、大成功にはなりませんでした。インターネットは、これらの気の毒なことに記入する方法についての簡単なガイドを提供するのにも役に立ちませんでした...どうもありがとう多くの!
これが私のコードです
#include <iostream>
#include <vector>
using namespace std;
vector<vector<double> > readMatrix();
int main()
{
vector<vector<double> > matrix1 = readMatrix();
vector<vector<double> > matrix2 = readMatrix();
}
vector<vector<double> > readMatrix()
{
cout << "Entering a matrix" << endl;
cout << "Number of Lines : ";
int numberOfLines;
cin >> numberOfLines;
cout << "Number of Columns :";
int numberOfColumns;
cin >> numberOfColumns;
vector<vector<double> > matrix;
int i(0);
int j(0);
while(i<=numberOfLines && j<=numberOfColumns)
{
cout << "[" << i+1 << "," << j+1 << "] =" ;
int value;
cin >> value;
matrix[i].push_back(value);
cout << endl ;
j++;
if(j==numberOfColumns)
{
j=1;
i++;
}
}
return matrix;
}