2 次元 std::vector の初期化は面倒な作業になる場合があります。一般的なアプローチは、提供されたコードで例示されているように、行を手動で作成してベクターに追加することです。ただし、この方法は非効率的でエラーが発生しやすい可能性があります。
別の解決策は、std::vector::vector(count, value) コンストラクターを利用することです。このコンストラクターは、必要な行数と各行要素のデフォルト値の 2 つのパラメーターを受け入れます。これらのパラメーターに適切な値を指定することで、単一のステートメントでベクトルを初期化できます。
std::vector<std::vector<int>> fog(ROW_COUNT, std::vector<int>(COLUMN_COUNT)); // Defaults to zero initial value
ゼロ以外のデフォルト値が必要な場合は、コンストラクターの 2 番目の引数として指定できます。
std::vector<std::vector<int>> fog(ROW_COUNT, std::vector<int>(COLUMN_COUNT, 4));
ユニフォームの初期化
C 11 でユニフォームが導入されました初期化。2D ベクトルを初期化するための別の簡潔な構文を提供します。
std::vector<std::vector<int>> fog { { 1, 1, 1 }, { 2, 2, 2 } };
このアプローチでは、中括弧を利用してベクトル内の行を初期化します。内側の中括弧で囲まれた各リストは行を表し、各要素は指定された値に初期化されます。
これらの手法を採用することで、2D std::vector を効率的かつエレガントに初期化し、手動による初期化の複雑さを回避できます。 .
以上がC で 2D std::vector を効率的に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。