Rumah >pembangunan bahagian belakang >C++ >Cara Mengurangkan Kapasiti Berlebihan dalam std::vector: Trik Swap Dijelaskan
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>
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!