Mengekstrak Subvektor daripada Vektor
Dalam C , std::vector ialah bekas yang menyimpan jujukan unsur yang bersebelahan. Bagaimana jika anda perlu mengekstrak subset elemen daripada vektor besar untuk mencipta yang baharu?
Untuk membina vektor baharu yang terdiri daripada elemen X hingga Y, anda boleh menggunakan langkah berikut:
vector<T>::const_iterator first = myVec.begin() + X; vector<T>::const_iterator last = myVec.begin() + Y + 1;
vector<T> newVec(first, last);
Pendekatan ini mengambil masa O(N) untuk membina vektor baharu, tetapi ia cekap untuk vektor besar. Jika anda perlu mencipta salinan elemen lain dalam vektor asal, anda boleh menggunakan std::copy :
vector<T> newVec(Y - X + 1); std::copy(first, last, newVec.begin());
Jika vektor asal sangat besar dan anda hanya memerlukan sebahagian daripadanya, anda boleh pertimbangkan untuk menggunakan std::deque dan bukannya std::vector. A std::deque menyokong pemasukan dan pemadaman yang cekap pada kedua-dua hujungnya, menjadikannya lebih sesuai untuk pengekstrakan subvektor dinamik.
Atas ialah kandungan terperinci Bagaimana Mengeluarkan Subvektor dengan Cekap dari C std::vector?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!