


Bolehkah Kita Mengeluarkan Elemen daripada Vektor Di Dalam Julat C 11 Berasaskan Gelung?
Dec 06, 2024 am 01:32 AMMengalih keluar Elemen daripada Vektor dalam Gelung Berasaskan Julat C 11
Dalam C 11, berdasarkan julat untuk gelung menawarkan cara mudah untuk mengulang melalui elemen kontena. Walau bagaimanapun, mengalih keluar elemen daripada bekas dalam gelung ini menimbulkan cabaran.
Pertimbangkan kod berikut:
std::vector<IInventory*> inv; inv.push_back(new Foo()); inv.push_back(new Bar()); for (IInventory* index : inv) { // Do some stuff // I need to remove this object from 'inv'... }
Bolehkah Kami Mengalih Keluar Elemen Dalam Gelung Berasaskan Julat?
Tidak, anda tidak boleh mengalih keluar elemen daripada vektor dalam julat untuk gelung. Ini kerana gelung beroperasi dengan mencipta salinan lelaran vektor, yang menjadi tidak sah jika elemen dialih keluar atau ditambah.
Oleh itu, adalah penting untuk mempertimbangkan pendekatan alternatif untuk mengubah suai bekas semasa lelaran.
Penyelesaian Disyorkan
Pendekatan yang disyorkan ialah menggunakan gelung tradisional atau salah satu daripadanya varian. Ini membolehkan anda memanipulasi vektor secara langsung dan mengalih keluar elemen seperti yang diperlukan. Contohnya:
auto i = std::begin(inv); while (i != std::end(inv)) { // Do some stuff if (blah) i = inv.erase(i); else ++i; }
Atas ialah kandungan terperinci Bolehkah Kita Mengeluarkan Elemen daripada Vektor Di Dalam Julat C 11 Berasaskan Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Gulc: Perpustakaan C dibina dari awal

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Penggunaan dan perkongsian frasa yang berbeza

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?
