Rumah >pembangunan bahagian belakang >C++ >Apakah Keadaan Vektor Beralih Daripada dalam C ?
Keadaan Kosong Pindah-Dari Vektor
Dalam jenis perpustakaan standard C, objek yang dialihkan daripada biasanya diletakkan dalam keadaan yang sah tetapi tidak ditentukan . Walau bagaimanapun, terdapat rasa ingin tahu sama ada vektor secara eksplisit berada di bawah peraturan ini.
Gelagat Pembina Alih
Untuk pembina bergerak vektor, vektor alih-daripada sentiasa kosong disebabkan oleh keperluan kerumitan yang berterusan. Pembina mencuri sumber daripada vektor sumber untuk membina tika baharu, meninggalkan vektor asal dalam keadaan kosong.
Gelagat Operator Tugasan Alih
Tingkah laku pergerakan vektor pengendali tugasan lebih bernuansa dan bergantung kepada pengalokasi:
Kes 1: Sebarkan Pindahkan Tugasan = Benar
Dalam kes ini, vektor yang dialihkan daripada akan sentiasa kosong. Pengendali tugasan memusnahkan elemen, memperuntukkan kapasiti, memindahkan pemilikan penimbal memori daripada vektor sumber dan mengalihkan pengagih. Ini meninggalkan vektor asal dalam keadaan kosong.
Kes 2: Propagate Move Assignment = Palsu, Pembahagian Sama
Sama seperti Kes 1, vektor yang dialihkan daripada ialah dikosongkan oleh pengendali tugasan pindah. Pengagih tidak dialihkan dan pembezaan kes berlaku secara dinamik.
Kes 3: Penyerahan Pemindahan Penyerahan = Pembahagian Salah dan Tidak Sama
Kes yang paling rumit melibatkan pengagih yang berbeza. Di sini, tugasan alih tidak boleh mengalihkan sumber atau menetapkan pengagih. Sebaliknya, ia memindahkan elemen individu daripada vektor sumber ke vektor destinasi. Bergantung pada keupayaan pengagih dan keperluan pembinaan elemen, vektor yang dialihkan mungkin tidak semestinya kosong. Walau bagaimanapun, sesetengah pelaksanaan boleh memilih untuk memanggil clear() secara eksplisit pada vektor sumber, meninggalkannya kosong.
Atas ialah kandungan terperinci Apakah Keadaan Vektor Beralih Daripada dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!