std::vector<CustomClass *> whatever(20000);
atau:
std::vector<CustomClass *> whatever;
whatever.reserve(20000);
Yang pertama menetapkan ukuran sebenarnya dari array - yaitu, membuatnya menjadi vektor 20.000 pointer. Yang terakhir meninggalkan vektor kosong, tetapi cadangan ruang untuk 20.000 pointer, sehingga Anda dapat memasukkan (hingga) banyak tanpa harus realokasi.
Setidaknya dalam pengalaman saya, cukup tidak biasa bagi keduanya untuk membuat perbedaan besar dalam kinerja - tetapi keduanya dapat mempengaruhi kebenaran dalam beberapa keadaan. Secara khusus, selama tidak ada realokasi, iterator ke dalam vektor dijamin tetap valid, dan begitu Anda telah mengatur ukuran / ruang yang dipesan, Anda dijamin tidak akan ada realokasi apa pun selama Anda tidak t meningkatkan ukuran lebih dari itu.
std::vector
referensi apa pun , tergantung mana yang sesuai dengan kebutuhan Anda dengan lebih baik.