Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memulakan `std::vector` dengan cekap daripada Array gaya C?

Bagaimana untuk Memulakan `std::vector` dengan cekap daripada Array gaya C?

Patricia Arquette
Lepaskan: 2024-11-09 14:22:02
asal
472 orang telah melayarinya

How to Efficiently Initialize a `std::vector` from a C-style Array?

Menetapkan std::vector dari Array gaya-C Dengan Cekap

Apabila menghadapi tugas untuk memulakan std::vector dari a Tatasusunan gaya C, adalah penting untuk mempertimbangkan kedua-dua kecekapan dan kemudahan. Keadaan ini timbul apabila kekangan luaran menentukan bahawa data disediakan dalam format tatasusunan gaya C, seperti yang digambarkan dalam contoh kelas berikut:

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

Untuk memulakan std::vector dengan cekap, kita boleh memanfaatkan fakta bahawa penunjuk tatasusunan gaya C juga boleh dianggap sebagai iterator. Ini membolehkan kita mengelak daripada mencipta bekas perantaraan atau menggelungkan elemen individu:

Penyelesaian Elegan dan Cekap:

w_.assign(w, w + len);
Salin selepas log masuk

Di sini, w ialah penunjuk kepada yang pertama elemen dalam tatasusunan gaya-C, dan w len menunjuk ke penghujung tatasusunan. Menggunakan fungsi tetapkan dengan iterator secara automatik membina elemen vektor daripada elemen tatasusunan. Kaedah ini bukan sahaja cekap tetapi juga ringkas dan elegan.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan `std::vector` dengan cekap daripada Array gaya C?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan