Apa perbedaan antara array dan vektor di C ++? Contoh perbedaan mungkin termasuk perpustakaan, simbolisme, kemampuan, dll.
Himpunan
Array berisi sejumlah elemen dari tipe tertentu. Agar kompilator dapat mencadangkan jumlah ruang yang diperlukan saat program dikompilasi, Anda harus menentukan jenis dan jumlah elemen yang akan dimuat dalam larik saat ia didefinisikan. Kompilator harus dapat menentukan nilai ini saat program dikompilasi. Setelah sebuah array ditentukan, Anda menggunakan pengenal untuk array tersebut bersama dengan indeks untuk mengakses elemen tertentu dari array tersebut. [...] array diindeks nol; Artinya, elemen pertama ada di indeks 0. Skema pengindeksan ini menunjukkan hubungan dekat dalam C ++ antara pointer dan array dan aturan yang ditentukan oleh bahasa untuk aritmatika pointer.
- Referensi Saku C ++
Vektor
Vektor adalah urutan objek berukuran dinamis yang menyediakan
operator[]
akses acak bergaya array . Fungsi anggotapush_back
menyalin argumennya melalui konstruktor salinan, menambahkan salinan itu sebagai item terakhir dalam vektor dan menambah ukurannya satu per satu.pop_back
melakukan kebalikannya, dengan menghapus elemen terakhir. Memasukkan atau menghapus item dari akhir vektor membutuhkan waktu konstan diamortisasi, dan memasukkan atau menghapus dari lokasi lain membutuhkan waktu linier. Ini adalah dasar dari vektor. Ada lebih banyak dari mereka. Dalam kebanyakan kasus, vektor harus menjadi pilihan pertama Anda di atas larik gaya C. Pertama-tama, ukurannya dinamis, yang berarti dapat tumbuh sesuai kebutuhan. Anda tidak perlu melakukan segala macam penelitian untuk mengetahui ukuran statis yang optimal, seperti dalam kasus array C; vektor tumbuh sesuai kebutuhan, dan dapat diubah ukurannya lebih besar atau lebih kecil secara manual jika perlu. Kedua, vektor menawarkan pemeriksaan batas denganat
fungsi anggota (tetapi tidak denganoperator[]
), sehingga Anda dapat melakukan sesuatu jika Anda mereferensikan indeks yang tidak ada alih-alih hanya menonton program Anda macet atau lebih buruk lagi, melanjutkan eksekusi dengan data yang rusak.- Buku Resep C ++