Vektör vs listesi
Genellikle programcılar, vektörler ve listeler için kafa karıştırıcı olan C ++ ve Java'da dizi tutmalarında kullanılan dizilerdir. İki terim dizi adreslerini tutar, ancak farklı dizileri tutma yöntemleriyle.
Bilmemiz gereken temel şey, bir dizinin verilerin bir kısmını veya tamamını, yani tamsayıları, kayan noktaları veya karakterleri tutan ve “[]” köşeli parantez içinde tanımlanan bir “liste” olmasıdır.
Aslında, vektörler ve listeler örneklere göre hareket eder. Şimdi bu iki terimi birer birer inceleyelim.
Vektörler
Vektörler dizi tutma ve elemanlara erişimde kullanılır. Burada “[]” operatörünü kullanarak herhangi bir öğeye rastgele erişebilirsiniz. Böylece bir vektör işlemiyle tüm öğelere veya belirli bir öğeye bakmak kolaylaşır. Bu nedenle, sonuna, başlangıçta veya ortada herhangi bir nesne eklerseniz, vektörlerin artı noktası vardır, çünkü rastgele adrese erişebilir ve orada değişiklikler yapabilirsiniz. Ancak, vektörler liste nesnelerine göre biraz yavaştır. Vektörler, rasgele erişimde verimli olan senkronize nesneler olarak kabul edilir ve verileri senkronize edilmiş bir listeyle düzgün bir şekilde tutarlar. Şuraya ekleme veya silme ihtiyacı olmadığında bir vektör seçilir
orta (liste) veya önden.
Bir dizideki öğelerin sayısı önemli ölçüde değişebilir.
Misal:
vektör V;
V.insert (V.begin (), 3);
assert (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);
Listeler
Listeler, hem ileri hem de geri geçişi destekleyen “çift bağlantılı diziler” dir. Başlangıç, bitiş ve ortadaki yerleştirme ve silme işlemlerinde geçen süre sabittir. Bağlantılı listeler arasına ekleme ve ekleme, öğelerdeki yinelemeleri geçersiz kılmaz. Yalnızca kaldırma işlemi yinelemeyi geçersiz kılar. Senkronize edilmezler, böylece rastgele erişilemezler. Yinelemelerin sırası kullanıcıya göre değişebilir, ancak elemanlardaki herhangi bir değişikliği etkilemez. Vektörlerden daha hızlıdırlar ve öğe listelerinin başına, ortasına ve sonuna ekleme ve silme için idealdir.
Misal:
#Dahil etmek
// sınıf şablonu tanımını listele
... .
int main ()
int dizi [4] = 2, 6, 4, 8;
std :: liste değerleri;
std :: diğer değerleri listele;
Özet:
1. Bir vektör varken liste senkronize edilmez.
2. Bir vektörün varsayılan boyutu 10 iken listelerin varsayılan boyutu yoktur.
3. Listeler ve vektörler dinamik olarak büyüyen dizilerdir.
4. Bir liste iş parçacığı için güvenli değilken, bir vektör iş parçacığı için güvenli değildir.
5. Listeler, yalnızca öndeki ve arkadaki toplama ve silme işlemleri için geçerli olduklarından,
vektörler daha fazla CPU alır.
6. Bir liste iki kez büyür, bir liste yarıya düşer, yani yüzde 50.