Mengekstrak Subvektor daripada Vektor Dengan Cekap
Andaikan anda ingin mengekstrak sebahagian daripada vektor, mencipta vektor baharu dengan unsur X hingga Y. Dalam C dengan vektor perpustakaan standard, pendekatan yang paling mudah ialah menggunakan iterator:
vector<T>::const_iterator first = myVec.begin() + X; vector<T>::const_iterator last = myVec.begin() + Y + 1; vector<T> newVec(first, last);
Operasi ini mempunyai kerumitan masa O(N), dengan N ialah saiz vektor asal. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tidak ada cara yang lebih berkesan untuk mencapai ini menggunakan vektor.
Jenis Data STL Alternatif
Jika anda perlu mengekstrak subvektor kerap, pertimbangkan untuk menggunakan bekas STL alternatif yang menyokong pengekstrakan subvektor yang lebih cekap. Satu pilihan ialah deque, yang membolehkan pemasukan dan pemadaman elemen yang cekap pada kedua-dua hujung:
deque<T> myDeque; deque<T> subDeque(myDeque.begin() + X, myDeque.begin() + Y + 1);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Subvektor dengan Cekap daripada Vektor C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!