İkisi de aynı türden, birden çok veri taşıyabiliyor fakat aralarındaki en önemli fark dizilerin sabit boyutlu olmasıdır. Yani; diziler başta tanımlandığındaki boyutta kalırlar, arttırılamazlar. Vektörler ise arttırılabilir veya azaltılabilirler. Sabit boyutlu değildir. Bu nedenle vektörler dizilerden daha esnek bir yapıdadır.
Diziler değiştirilebilir(mutable) olabilseler de alacağı değerlerin türü ve kaç adet alınacağı derlemeden önce bilindiği için stack üzerinde tanımlanırlar. Buda çok hızlı çalıştıkları anlamına gelir.
Vektörler ise muhtemelen linked list yöntemi kullanılarak birbirine bağlı diziler ile hafızanın(memory) heap bölgesinde oluşturuluyor. Bu nedenle çalışma zamanında boyutu değiştirilebiliyor. Fakat hafızanın heap bölgesi, stack bölgesine göre daha yavaş çalışıyor.
https://web.mit.edu/rust-lang_v1.25/arch/amd64_ubuntu1404/share/doc/rust/html/book/first-edition/vectors.html#:~:text=Vectors%20store%20their%20contents%20as%20contiguous%20arrays%20of%20T%20on%20the%20heap
A ‘vector’ is a dynamic or growable array, implemented as the standard library type Vec<T>. The T means that we can have vectors of any type (see the chapter on generics for more). Vectors always allocate their data on the heap. You can create them with the vec! macro:
Ek olarak; C++ dilinde de vektörler dizilerden daha yavaş çalışıyor. Çünkü; veriyi almak için işaret edilen heap bölgesine gidildikten sonra eğer başka yerlere işaret ediliyorsa, oraya geçmesi gerekiyor. Haliyle bütün bu işlemler bilgisayarın çalışması sırasında işlemcinin cycle'nı tüketiyor ve zaman geçmesine neden oluyor. Dolayısıyla, sonuca daha geç ulaşıyorsunuz.
Umarım açıklayıcı olmuştur. Belki diğer arkadaşlarımız da katkıda bulunarak, konuyu daha açıklayıcı hale getirirler.