Bagaimana untuk Memastikan Keselamatan Apabila Menolak Elemen dari Vektor yang Sama?

Linda Hamilton
Lepaskan: 2024-10-26 11:17:30
asal
569 orang telah melayarinya

How to Ensure Safety When Pushing Elements from the Same Vector?

Menolak Elemen daripada Vektor yang Sama: Langkah Keselamatan

Keselamatan menolak elemen daripada vektor yang sama bergantung pada potensi pengagihan semula , yang boleh membatalkan rujukan kepada elemen vektor sedia ada. Isu ini timbul dalam contoh berikut:

<code class="cpp">vector<int> v;
v.push_back(1);
v.push_back(v[0]);</code>
Salin selepas log masuk

Jika tolak_balik kedua mencetuskan pengagihan semula, rujukan kepada v[0] menjadi tidak sah. Untuk menangani perkara ini, pendekatan berikut boleh digunakan:

<code class="cpp">vector<int> v;
v.push_back(1);
v.reserve(v.size() + 1);
v.push_back(v[0]);</code>
Salin selepas log masuk

Dengan memanggil rizab, kami secara eksplisit meminta memori yang mencukupi, memastikan tiada pengagihan semula berlaku semasa sisipan berikutnya.

Mengikut standard C , tingkah laku push_back berkenaan dengan rujukan elemen tidak ditakrifkan secara eksplisit sebagai kecacatan, walaupun ia berpotensi membawa kepada rujukan tidak sah. Ini kerana standard memerlukan vektor::insert untuk berfungsi dengan betul, walaupun apabila sisipan menukar kedudukan elemen lain.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Keselamatan Apabila Menolak Elemen dari Vektor yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!