Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memulakan Vektor dengan Elegan dalam 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);
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};
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);
Menggunakan = notasi:
#include <boost/assign/std/vector.hpp> using namespace boost::assign; ... std::vector<int> v; v += 1, 2, 3, 4;
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!