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
Lepaskan: 2024-12-22 20:29:59
asal
205 orang telah melayarinya

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};
Salin selepas log masuk

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);
Salin selepas log masuk

Atau:

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

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!

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