ホームページ > バックエンド開発 > C++ > C で 2D std::vector を効率的に初期化するにはどうすればよいですか?

C で 2D std::vector を効率的に初期化するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-02 22:52:14
オリジナル
888 人が閲覧しました

How Can I Efficiently Initialize a 2D std::vector in C  ?

2D std::vector の効率的な初期化

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート