Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Tidak Boleh Menggunakan Rujukan dalam Vektor C?
Di alam C , vektor berkuasa sebagai alat berkuasa untuk pengurusan memori dinamik. Walau bagaimanapun, apabila ia melibatkan penyimpanan rujukan dalam vektor, ralat yang membingungkan mungkin timbul.
Pertimbangkan coretan kod berikut:
std::vector<int> hello;
Kod ini disusun dengan lancar, membolehkan anda membuat vektor bagi integer. Tetapi apa yang berlaku apabila kita cuba menggunakan rujukan sebaliknya?
std::vector<int &> hello;
Penyusun meletus dalam kesilapan, sambil berseru: "penunjuk kepada rujukan adalah haram." Tingkah laku ingin tahu ini berpunca daripada sifat asas rujukan dalam C . Rujukan, setelah dimulakan, kekal tidak berubah, terikat kepada rujukan masing-masing sepanjang hayatnya. Menetapkan nilai baharu kepada rujukan adalah dilarang sama sekali.
Malangnya, ketakbolehubah ini bercanggah dengan sifat bekas seperti vektor. Bekas memerlukan komponennya boleh diagihkan untuk memastikan pengurusan memori yang betul dan keupayaan pengubahsuaian. Memandangkan rujukan tidak mempunyai kebolehtugasan ini, ia tidak serasi sebagai komponen vektor.
Oleh itu, satu-satunya pilihan yang berdaya maju untuk menyimpan rujukan dalam vektor ialah menggunakan penunjuk, yang memberikan fleksibiliti yang diperlukan untuk menunjuk ke objek berbeza dari semasa ke semasa.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Rujukan dalam Vektor C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!