簡単に std::vector を初期化する: 迅速なアプローチ
プログラミングの領域では、特定のデータ構造を初期化することが望ましいことがよくあります。価値観。 C のユビキタス コンテナである std::vector は、このようなシナリオにエレガントなソリューションを提供します。
従来の方法
クエリで述べたように、1 つの従来の方法std::vector の初期化は追加と代入によって行われますアプローチ:
std::vector<int> ints; ints.push_back(10); ints.push_back(20); ints.push_back(30);
このプロセスは機能しますが、複数の手順が必要であり、大規模なコレクションの場合は退屈になる可能性があります。
C 11 による迅速な初期化
C 11 では大幅な機能強化が導入され、括弧付きベクトルの初期化が簡素化されました。初期化:
std::vector<int> v = {1, 2, 3, 4};
この構文は、ハードコーディングされた要素でベクトルを初期化する直観的かつ簡単な方法を提供し、明示的な要素の追加の必要性を排除します。
ブーストによる代替オプション
コンパイラが C 11 をサポートしていない場合、Boost.Assign ライブラリが代替手段を提供します。メソッド:
コンストラクターのリスト:
#include <boost/assign/list_of.hpp> ... std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);
std 名前空間拡張:
#include <boost/assign/std/vector.hpp> using namespace boost::assign; ... std::vector<int> v; v += 1, 2, 3, 4;
注目に値しますこれらのブースト オプションは、基礎となる両端キューの構築によりパフォーマンスのオーバーヘッドが発生する可能性があることに注意してください。パフォーマンス重視のコードの場合は、従来の Push_back アプローチを使用することをお勧めします。
以上がC で std::vector を効率的に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。