Rumah >pembangunan bahagian belakang >C++ >Bagaimana dengan Pantas Memulakan std::vector daripada C-Style Array?

Bagaimana dengan Pantas Memulakan std::vector daripada C-Style Array?

DDD
DDDasal
2024-11-16 12:09:02924semak imbas

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

Menetapkan std::vector daripada C-Style Array

Dalam pelbagai senario, ia menjadi perlu untuk menetapkan std::vector menggunakan tatasusunan gaya C. Pertimbangkan kelas berikut dengan vektor yang perlu dimulakan menggunakan data yang diluluskan sebagai tatasusunan gaya-C:

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

Daripada mengubah saiz vektor dan mengulangi elemen atau menggunakan std::copy(), pendekatan yang lebih cekap wujud. Dengan menggunakan fakta bahawa penunjuk boleh dianggap sebagai lelaran, vektor boleh ditetapkan dengan cepat menggunakan:

w_.assign(w, w + len);

Sintaks ini menetapkan julat dari penunjuk w hingga w len, dengan berkesan memulakan vektor dengan nilai dari Tatasusunan gaya C.

Atas ialah kandungan terperinci Bagaimana dengan Pantas Memulakan std::vector daripada C-Style Array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn