ホームページ >バックエンド開発 >C++ >C スタイルの配列から std::vector をすばやく初期化する方法

C スタイルの配列から std::vector をすばやく初期化する方法

DDD
DDDオリジナル
2024-11-16 12:09:02928ブラウズ

How to Quickly Initialize a std::vector from a C-Style Array?

C スタイル配列からの std::vector の割り当て

さまざまなシナリオで、std::vector を割り当てることが必要になります。 C スタイルの配列を使用します。 C スタイルの配列として渡されたデータを使用して初期化する必要があるベクトルを含む次のクラスを考えてみましょう:

class Foo {
  std::vector<double> w_;
public:
  void set_data(double* w, int len){
   // how to cheaply initialize the std::vector?
}
};

ベクトルのサイズを変更して要素を反復処理する代わりに、または std::copy() を使用します。より効率的なアプローチが存在します。ポインタをイテレータとして扱うことができるという事実を利用して、

w_.assign(w, w + len);

を使用してベクトルをすばやく割り当てることができます。この構文はポインタ w から w len までの範囲を割り当て、ベクトルを効果的に初期化します。 C スタイルの配列

以上がC スタイルの配列から std::vector をすばやく初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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