Cara Memulakan std::vector dengan Elemen Kod Keras Seperti Array
Memulakan std::vektor dengan senarai elemen berkod keras mungkin kelihatan seperti kerumitan berbanding dengan kesederhanaan memulakan tatasusunan. Pendekatan biasa melibatkan menolak elemen secara berulang ke vektor menggunakan push_back(). Tetapi adakah terdapat penyelesaian yang lebih elegan yang mencerminkan sintaks ringkas bagi permulaan tatasusunan?
Penyelesaian Elegan C 11
Jika pengkompil anda menyokong C 11, jawapannya adalah mantap ya. Anda boleh terus memulakan std::vector dengan senarai elemen yang disertakan dalam {}:
<code class="cpp">std::vector<int> v = {1, 2, 3, 4};</code>
Sintaks ini meniru permulaan tatasusunan dan menghapuskan keperluan untuk gelung atau push_back().
Alternatif untuk Penyusun Lama
Untuk penyusun yang tidak menyokong C 11, terdapat kaedah alternatif:
Boost.Assign Library:
Pustaka Boost.Assign menyediakan cara mudah untuk memulakan vektor menggunakan sintaks berikut:
<code class="cpp">#include <boost/assign/list_of.hpp> std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);</code>
Operator Overloading:
Anda boleh terlebih beban = pengendali untuk memulakan vektor:
<code class="cpp">#include <boost/assign/std/vector.hpp> using namespace boost::assign; std::vector<int> v; v += 1, 2, 3, 4;</code>
Perhatikan bahawa kaedah ini mempunyai beberapa overhed prestasi berbanding dengan permulaan langsung, menjadikannya kurang sesuai untuk kod kritikal prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan std::vektor dengan Elemen Khusus Tanpa Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!