Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memulakan std::vektor dengan Elegan dengan Elemen Kod Keras dalam C ?

Bagaimanakah Saya Boleh Memulakan std::vektor dengan Elegan dengan Elemen Kod Keras dalam C ?

Susan Sarandon
Susan Sarandonasal
2024-12-22 20:29:59220semak imbas

How Can I Elegantly Initialize a std::vector with Hardcoded Elements in C  ?

Permulaan Elegan std::vector dengan Elemen Kod Keras

Walaupun mudah untuk memulakan tatasusunan dalam C , mis., int a[] = {10, 20, 30}, memulakan std::vector dalam a fesyen yang serupa mungkin kelihatan menyusahkan. Berikut ialah dua cara yang elegan untuk mencapai hasil yang sama:

Senarai Pemula C 11

Dalam C 11 dan kemudian, anda boleh menggunakan senarai pemula untuk memulakan std:: vektor secara langsung:

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

Sintaks ini disokong oleh GCC daripada versi 4.4. Walau bagaimanapun, VC 2010 belum lagi menyokong ciri ini.

Boost.Assign Library

Sebagai alternatif, perpustakaan Boost.Assign menyediakan cara yang mudah untuk memulakan std::vector:

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

Atau:

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

Perhatikan bahawa sintaks yang terakhir melibatkan sedikit overhed disebabkan penggunaan dalaman std::deque. Oleh itu, untuk kod kritikal prestasi, pertimbangkan untuk menggunakan senarai pemula vektor std::vector terus, seperti yang dicadangkan oleh Yacoby dalam soalan asal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan std::vektor dengan Elegan dengan Elemen Kod Keras dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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