ホームページ >バックエンド開発 >C++ >ベクトルを使用して行列を作成すると「添字が範囲外です」エラーが発生するのはなぜですか?

ベクトルを使用して行列を作成すると「添字が範囲外です」エラーが発生するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 14:58:30466ブラウズ

Why Am I Getting

行列を作成するベクトルのベクトル

ベクトル (ベクトルのベクトル) を使用して 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 に初期化します。

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

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