C ++ 'da bir dizi ve vektör arasındaki farklar nelerdir? Farklılıkların bir örneği kitaplıklar, sembolizm, yetenekler vb. Olabilir.
Dizi
Diziler, belirli bir türden belirli sayıda öğe içerir. Derleyicinin program derlendiğinde gerekli miktarda alanı ayırabilmesi için, dizinin tanımlandığında içereceği öğelerin türünü ve sayısını belirtmeniz gerekir. Derleyici, program derlendiğinde bu değeri belirleyebilmelidir. Bir dizi tanımlandıktan sonra, dizinin belirli öğelerine erişmek için dizinin tanımlayıcısını bir dizinle birlikte kullanırsınız. [...] diziler sıfır dizinlidir; yani, ilk eleman 0 dizinindedir. Bu indeksleme şeması, C ++ 'da işaretçiler ve diziler arasındaki yakın ilişkinin ve dilin işaretçi aritmetiği için tanımladığı kuralların göstergesidir.
- C ++ Cep Referansı
Vektör
Bir vektör, dizi tarzı
operator[]
rastgele erişim sağlayan dinamik boyutlu bir nesne dizisidir . Üye işlevipush_back
, bağımsız değişkenlerini copy yapıcısı aracılığıyla kopyalar, bu kopyayı vektördeki son öğe olarak ekler ve boyutunu birer birer artırır.pop_back
son öğeyi kaldırarak tam tersini . Bir vektörün sonundan öğeleri eklemek veya silmek, amortize edilmiş sabit zaman alır ve başka bir konumdan ekleme veya silme işlemi doğrusal zaman alır. Bunlar vektörlerin temelleridir. Onlardan çok daha fazlası var. Çoğu durumda, bir vektör, C tarzı bir dizi üzerinde ilk tercihiniz olmalıdır. Her şeyden önce, dinamik olarak boyutlandırılırlar, bu da gerektiğinde büyüyebilecekleri anlamına gelir. C dizilerinde olduğu gibi, optimal bir statik boyutu bulmak için her türlü araştırma yapmanız gerekmez; bir vektör gerektiği gibi büyür ve gerekirse manuel olarak daha büyük veya daha küçük boyutlandırılabilir. İkinci olarak, vektörler,at
üye işleviyle (ancakoperator[]
), böylece sadece programınızın çökmesini veya daha kötüsünü izlemek yerine var olmayan bir dizine başvurursanız, bozuk verilerle yürütmeye devam ederseniz bir şeyler yapabilirsiniz.- C ++ Yemek Kitabı