1. ホーム
  2. c++

[解決済み】C言語配列からstd::vectorを初期化する方法とは?

2022-04-14 11:56:30

質問

を初期化する最も安価な方法は何ですか? std::vector を C スタイルの配列から作成することはできますか?

例 以下のクラスでは vector が、外部からの制約により、C言語形式の配列としてデータを渡すことになります。

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

明らかに、私は w_.resize() を呼び出して要素にループをかけるか、あるいは std::copy() . 何か良い方法はないでしょうか?

どのように解決するのですか?

ポインターをイテレータとして扱えることを忘れないでください。

w_.assign(w, w + len);