Rumah > pembangunan bahagian belakang > C++ > Apakah implikasi tugasan bergerak sendiri untuk vektor dalam Perpustakaan Standard C?

Apakah implikasi tugasan bergerak sendiri untuk vektor dalam Perpustakaan Standard C?

Linda Hamilton
Lepaskan: 2024-11-20 12:55:09
asal
394 orang telah melayarinya

What are the implications of self move assignment for vectors in the C   Standard Library?

Tugasan Gerakan Kendiri dalam Perpustakaan Standard C

Pustaka standard C menjamin tingkah laku tertentu untuk tugasan bergerak sendiri, seperti yang ditakrifkan dalam standard.

Secara khusus, piawaian menyatakan bahawa untuk fungsi dalam pustaka standard dengan argumen jenis T&&, pelaksanaan mungkin menganggap bahawa parameter ialah rujukan unik kepada hujah. Ini bermakna pustaka standard mungkin mengoptimumkan gelagatnya berdasarkan andaian bahawa parameter ialah nilai r sementara.

Dalam kes penetapan bergerak sendiri, pelaksanaan dibenarkan untuk menganggap bahawa vektor hujah ialah nilai pr. Ini bermakna pustaka standard mungkin melakukan pengoptimuman yang tidak mungkin dilakukan jika hujah ialah nilai l.

Akibatnya, tugasan bergerak sendiri dalam pustaka standard mungkin mengakibatkan vektor ditinggalkan dalam sumber -keadaan kurang, dengan kapasiti 0. Jika vektor sudah mempunyai kapasiti 0, tugasan bergerak sendiri akan menjadi tiada operasi.

Kemas kini

Draf terkini piawaian C menyatakan dengan jelas bahawa dalam keperluan MoveAssignable, ungkapan t = rv (di mana rv ialah nilai r) hanya memerlukan t untuk bersamaan dengan rv sebelum tugasan jika t dan rv tidak merujuk objek yang sama. Selain itu, keadaan rv tidak ditentukan selepas tugasan.

Atas ialah kandungan terperinci Apakah implikasi tugasan bergerak sendiri untuk vektor dalam Perpustakaan Standard 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