Vektör ve List Arasındaki Fark

Anonim

Vektör vs List

Genellikle programcılar, vektörler ve listelerle karıştırıldığında C ++ ve Java'daki dizi tutanaklarında kullanılan dizilerdir. İki terim dizi adresleri tutar, ancak dizi tutma yöntemleri farklıdır.

Bilmemiz gereken temel şey, bir dizinin, verilerin bir kısmını veya tamamını tutan bir "liste" olmasıdır, e., tamsayılar, kayan noktalar veya karakterler ve köşeli ayraçlar "[] içinde tanımlanır. "

Aslında vektörler ve listeler örneklere göre hareket eder. Bu iki terimi birer birer gözden geçirelim.

Vektörler

Vektörler dizi tutmada ve elemanlara erişirken kullanılır. Burada "[]" operatörünü kullanarak herhangi bir öğeye rastgele erişebilirsiniz. Dolayısıyla, vektör işlemi ile tüm elemanları ya da belirli bir elemanı görmek kolaylaşır. Dolayısıyla, sonunda, başında veya ortasında herhangi bir nesne eklerseniz, vektörlerin artı noktası olur çünkü rasgele adrese erişebilir ve orada değişiklik yapabilirsiniz. Bununla birlikte, vektörler liste nesnelerine kıyasla biraz yavaştır. Vektörler senkronize nesneler olarak kabul edilir, rasgele erişime etkinlik gösterir ve verileri senkronize edilmiş bir listeyle düzgün şekilde tutar. Bir vektör,

ortada (liste) veya ön kısımda ekleme veya silme ihtiyacı duyulmadığında seçilir.

Bir dizideki öğe sayısı önemli ölçüde değişebilir.

Örnek:

Vektör V;

V. Ekle (V. başla (), 3);

assert (V. Size () == 1 && V. capacity ()> = 1 && V [0] == 3);

Listeler

Listeler, ileri ve geri kavuşmayı destekleyen "çift bağlantılı diziler" dir. Başlangıç, bitiş ve ortadaki ekleme ve silme işleminde geçen süre sabittir. Bağlantılı listeler arasındaki ekleme ve birleştirme, öğelerdeki yinelemeyi geçersiz kılmaz. Tek kaldırma yinelemeyi geçersiz kılar. Senkronize olmadıkları için rasgele erişilemezler. Yinelemelerin sıralaması kullanıcıya göre değişebilir, ancak öğelerdeki herhangi bir değişikliği etkilemez. Vektörlerden daha hızlıdırlar ve eleman listelerinin başında, ortasında ve sonunda ekleme ve silme için idealdirler.

Örnek:

#include

// liste sınıf şablonu tanımı

….

int main ()

{

int dizi [4] = {2, 6, 4, 8};

std:: liste değerleri;

std:: list otherValues;

Özet:

1. Bir vektör varken bir liste senkronize edilmez.

2. Bir vektörün varsayılan boyut 10'dur. Listelerin varsayılan boyutu yoktur.

3. Listeler ve vektörler hem dinamik olarak büyüyen dizilerdir.

4. Bir liste, iş parçacığından güvenli değildir, oysa bir vektör iş parçacığına güvenlidir.

5.

vektörleri daha fazla CPU kullanırken, önler ve arkadaki ekleme ve silme işlemleri için geçerli olan listeler daha hızlıdır.

6. Bir vektör, boyutunun iki katına kadar yükselirken, bir liste yarıya düşer;e., yüzde 50.