Adakah Vektor Beralih Daripada Dijamin Kosong?
Secara amnya, piawaian C menyediakan panduan minimum tentang keadaan objek selepas mereka telah dipindahkan dari. Seperti yang dinyatakan dalam N3485 17.6.5.15 [lib.types.movedfrom]/1:
Objek jenis yang ditakrifkan dalam perpustakaan standard C boleh dialihkan daripada (12.8). Operasi alih mungkin dinyatakan secara eksplisit atau dijana secara tersirat. Melainkan dinyatakan sebaliknya, objek yang dialihkan daripada itu hendaklah diletakkan dalam keadaan yang sah tetapi tidak ditentukan.
Walaupun peruntukan ini tidak mengecualikan vektor daripada tertakluk kepada tingkah laku ini, ia memberi ruang untuk tafsiran.
Gelagat Khusus Vektor
Tiada keperluan standard eksplisit yang mengecualikan vektor daripada dipengaruhi oleh peraturan am untuk objek yang dialihkan. Walau bagaimanapun, memandangkan keperluan untuk pelaksanaan vektor, terdapat pilihan terhad:
Move Constructor:
Operator Tugasan Pindah:
Kes Satu:
Kes Dua:
Kes Tiga:
Kesimpulan:
Untuk pembina bergerak vektor, vektor alih-dari sentiasa kosong. Untuk pengendali penugasan pindah, vektor alih-dari biasanya kosong, tetapi mungkin tidak berada dalam senario tertentu tertentu di mana pengalokasi tidak serasi dan T ialah MoveAssignable atau MoveInsertable.
Atas ialah kandungan terperinci Adakah `std::vector` Dipindahkan Dari Dijamin Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!