ホームページ >バックエンド開発 >C++ >C ベクトル内に配列を適切に保存するにはどうすればよいですか?

C ベクトル内に配列を適切に保存するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-08 18:52:11765ブラウズ

How Can I Properly Store Arrays Within a C   Vector?

ベクトル<配列>

C では、ベクトルはオブジェクトのコレクションを格納するための強力なコンテナです。ただし、配列をベクトル内に直接格納しようとすると、float 配列のベクトル (vector) を宣言したり、サイズ変更中に変換エラーが発生したりする場合に見られるように、エラーが発生する可能性があります。

この問題これは、配列がコンテナ要素として本質的にサポートされていないために発生します。コンテナでは、保存された要素がコピー構築可能で割り当て可能である必要がありますが、配列はこれらの要件を満たしていません。

解決策: 配列クラス テンプレートの利用

この制限を克服するには、次のようにします。生の配列の代わりに配列クラス テンプレートを使用することをお勧めします。 Boost、TR1、C 0x などの C ライブラリは、コピーの構築性と割り当て性を提供する配列テンプレートを提供します。

たとえば、C 0x が提供する配列クラス テンプレートを使用します。

std::vector<std::array<double, 4>>

または、C TR1 または Boost に組み込まれている配列テンプレートを利用できます。ライブラリ:

std::vector<std::tr1::array<double, 4>>
// or
std::vector<boost::array<double, 4>>

カスタム配列クラス (オプション)

必要に応じて、コピー構築と代入を実装する独自の配列クラスを作成して、コンテナーとの互換性を確保することもできます。使用法。

以上がC ベクトル内に配列を適切に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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