Vektor vs Daftar
Seringkali membingungkan bagi programmer, vektor dan daftar adalah urutan yang digunakan dalam kepemilikan array di C ++ dan Java. Kedua istilah tersebut menyimpan alamat array tetapi dengan metode yang berbeda untuk menahan array.
Hal dasar yang perlu kita ketahui adalah bahwa array adalah "daftar" yang menampung sebagian atau semua data, mis., Bilangan bulat, titik mengambang, atau karakter dan didefinisikan dalam tanda kurung "[]."
Sebenarnya, vektor dan daftar bertindak sesuai dengan instance. Jadi mari kita lihat dua istilah ini satu per satu.
Vektor
Vektor digunakan dalam memegang array dan mengakses elemen. Di sini Anda dapat mengakses elemen apa pun secara acak menggunakan operator "[]". Sehingga menjadi mudah untuk melihat semua elemen atau satu elemen tertentu dengan operasi vektor. Jadi, jika Anda memasukkan objek apa pun di akhir, di awal, atau di tengah, maka vektor memiliki titik plus karena Anda dapat mengakses alamat acak dan membuat perubahan di sana. Namun, vektor agak lambat dibandingkan dengan objek daftar. Vektor dianggap sebagai objek yang disinkronkan, efisien dalam akses acak, dan mereka menyimpan data dengan benar dengan daftar yang disinkronkan. Sebuah vektor diambil setiap kali tidak perlu memasukkan atau menghapus dalam
tengah (daftar) atau dari depan.
Jumlah elemen dalam array dapat bervariasi secara dramatis.
Contoh:
vektor V;
V.insert (V.begin (), 3);
assert (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);
Daftar
Daftar adalah "urutan tertaut ganda" yang mendukung traversal maju dan mundur. Waktu yang diambil dalam penyisipan dan penghapusan di awal, akhir, dan di tengah adalah konstan. Penyisipan dan splicing antara daftar tertaut tidak membatalkan iterasi dalam elemen. Hanya penghapusan yang membatalkan iterasi. Mereka tidak disinkronkan sehingga mereka tidak dapat diakses secara acak. Urutan iterasi dapat berubah sesuai dengan pengguna, tetapi tidak mempengaruhi perubahan dalam elemen. Mereka lebih cepat dari vektor dan ideal untuk penyisipan dan penghapusan di awal, tengah, dan akhir daftar elemen.
Contoh:
#termasuk
// daftar definisi template-kelas
... .
int main ()
int array [4] = 2, 6, 4, 8;
std :: nilai daftar;
std :: daftar otherValues;
Ringkasan:
1. Daftar tidak disinkronkan saat vektor.
2. Daftar tidak memiliki ukuran default sedangkan vektor memiliki ukuran standar 10.
3. Daftar dan vektor keduanya adalah array yang tumbuh secara dinamis.
4. Daftar tidak aman thread sedangkan vektor aman thread.
5. Daftar, karena hanya berlaku untuk penambahan dan penghapusan di depan dan belakang, sementara lebih cepat
vektor mengambil lebih banyak CPU.
6. Vektor tumbuh dengan ukurannya dua kali sementara daftar berkurang menjadi setengahnya, yaitu, 50 persen.