Andaian Storan Bersambung Vektor STL
Bolehkah kita menganggap bahawa unsur-unsur vektor STL yang diubah suai disimpan bersebelahan dalam ingatan?
Soalan:
Memandangkan saiz vektor STL vc
Jawapan:
Ya, tetapi dengan kaveat.
Mengikut kepada piawai C 03 (23.2.4.1), elemen dalam vektor STL disimpan bersebelahan. Ini bermakna bagi mana-mana vektor v dengan jenis unsur T (selain bool), &vc[0] n bersamaan &vc[n] untuk semua nilai n antara 0 dan v.size() - 1.
Awas:
Walaupun andaian ini pada umumnya benar, adalah penting untuk mengetahui potensi pengagihan semula memori yang mungkin berlaku apabila menambahkan elemen pada vektor. Jika kapasiti vektor melebihi, data vektor mungkin dialihkan ke blok memori baharu, membatalkan sebarang penunjuk atau iterator sedia ada. Oleh itu, adalah penting untuk mempertimbangkan potensi pengagihan semula apabila bergantung pada andaian storan bersebelahan ini.
Atas ialah kandungan terperinci Adakah Memori Vektor STL Bersebelahan Selepas Saiz semula?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!