ホームページ >バックエンド開発 >C++ >2D 行列を表すベクトルのベクトルにユーザー入力を読み取るときに、「添字が範囲外です」エラーが発生するのはなぜですか?

2D 行列を表すベクトルのベクトルにユーザー入力を読み取るときに、「添字が範囲外です」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 01:21:021066ブラウズ

Why am I getting a

行列表現のためのベクトルのベクトル

質問:

ベクトルを使用して 2D 行列を表現すると、エラーが発生しますユーザー入力を読み取り、それをマトリックスに追加しようとするとき。以下のコードは、「添え字が範囲外です」エラーを引き起こします。

<code class="cpp">vector<vector<int>> matrix;
for (int i = 0; i < RR; i++)
{
    for (int j = 0; j < CC; j++)
    {
        cout << "Enter the number for Matrix 1";
        cin >> matrix[i][j];
    }
}</code>

答え:

このエラーは、ベクトルのベクトルが適切な値で初期化されていないために発生します。要素にアクセスする前にサイズを変更します。これを解決するには、次のように行列を初期化します。

<code class="cpp">vector<vector<int>> matrix(RR, vector<int>(CC));</code>

このコードは、RR 行と CC 列の行列を作成します。各セルは 0 に初期化されます。これで、コードは、何もしなくても行列にアクセスして操作できるようになります。 「添え字が範囲外です」エラーが発生しました。

以上が2D 行列を表すベクトルのベクトルにユーザー入力を読み取るときに、「添字が範囲外です」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。