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
Lepaskan: 2024-11-16 12:09:02
asal
928 orang telah melayarinya

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?
}
};
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan