Cara Mengurangkan Kapasiti Berlebihan dalam std::vector: Trik Swap Dijelaskan

Patricia Arquette
Lepaskan: 2024-10-26 22:57:03
asal
153 orang telah melayarinya

How to Reduce Excess Capacity in a std::vector: The Swap Trick Explained

Cara Mengurangkan Kapasiti dengan Berkesan dalam std::vector

Jika anda mendapati diri anda mempunyai std::vector yang mempunyai kapasiti berlebihan, anda mungkin tertanya-tanya sama ada terdapat cara untuk mengecilkan saiznya untuk mengosongkan ingatan. Walaupun tiada kaedah langsung untuk ini, terdapat teknik pintar yang dikenali sebagai "helah pertukaran."

Helah Pertukaran

Menurut Item 17 dari Scott Meyers' Effective STL, anda boleh menggunakan helah swap untuk memangkas lebihan kapasiti daripada vektor. Begini cara ia berfungsi:

<code class="cpp">vector<Person>(persons).swap(persons);</code>
Salin selepas log masuk

Selepas melakukan pertukaran ini, vektor bernama "orang" akan "mengecilkan untuk muat", bermakna kapasitinya akan dikurangkan supaya sepadan dengan bilangan elemen yang terkandung di dalamnya.

Cara Trik Berfungsi

Helah ini mengambil kesempatan daripada fakta bahawa pembina salinan vektor hanya memperuntukkan jumlah memori yang diperlukan untuk elemen yang disalin. Dengan mencipta vektor baharu dengan bilangan elemen yang sama dengan vektor asal, pembina salinan mencipta vektor baharu dengan kapasiti yang lebih kecil.

Kaedah swap kemudian menukar kandungan dan kapasiti vektor asal dan baharu. Akibatnya, vektor asal dibiarkan dengan kapasiti yang dikurangkan.

Atas ialah kandungan terperinci Cara Mengurangkan Kapasiti Berlebihan dalam std::vector: Trik Swap Dijelaskan. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!