Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Memulakan Vektor dengan Elegan dalam C?

Bagaimanakah Saya Boleh Memulakan Vektor dengan Elegan dalam C?

Barbara Streisand
Lepaskan: 2024-12-21 11:33:14
asal
176 orang telah melayarinya

How Can I Elegantly Initialize Vectors in C  ?

Memudahkan Permulaan Vektor: Pilihan Pengekodan Keras Elegan

Mencipta pemula tersuai untuk tatasusunan ialah amalan standard dan mudah. Walau bagaimanapun, apabila ia datang kepada vektor, mencari mekanisme yang serupa boleh menjadi sedikit lebih rumit. Persoalan yang wujud ialah sama ada wujud kaedah untuk memulakan vektor sebersih tatasusunan. Mari kita terokai penyelesaiannya.

Pendekatan standard, seperti yang anda nyatakan, melibatkan operasi push_back:

std::vector<int> ints;
ints.push_back(10);
ints.push_back(20);
ints.push_back(30);
Salin selepas log masuk

Walaupun kaedah ini memenuhi tujuannya, ia tidak sepadan dengan keanggunan permulaan tatasusunan.

Pendakap C 11 Dilengkapi Permulaan

Dengan C 11 dan pengkompil yang serasi seperti GCC 4.4, anda boleh menerima inisialisasi tertutup pendakap untuk vektor:

std::vector<int> v = {1, 2, 3, 4};
Salin selepas log masuk

Sintaks ini menyediakan cara ringkas dan eksplisit untuk memulakan vektor .

Tingkatkan.Tugaskan Perpustakaan

Alternatif lain ialah menggunakan perpustakaan Boost.Assign. Ia menawarkan pelbagai teknik untuk pemulaan vektor:

Menggunakan list_of:

#include <boost/assign/list_of.hpp>
...
std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);
Salin selepas log masuk

Menggunakan = notasi:

#include <boost/assign/std/vector.hpp>
using namespace boost::assign;
...
std::vector<int> v;
v += 1, 2, 3, 4;
Salin selepas log masuk

Walau bagaimanapun, ambil perhatian bahawa Boost.Assign membawa beberapa overhed prestasi disebabkan oleh mekanisme asasnya. Untuk kod sensitif prestasi, pertimbangkan pendekatan push_back.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Vektor dengan Elegan dalam 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