C++ dinamik elemanlı diziler

C++ programlamada dinamik olarak eleman eklemek ve çıkarmak için genellikle new ve delete anahtar kelimeleri veya daha modern C++ sürümlerinde (C++ 11 ve sonrası) std::vector veya std::list gibi standart kütüphane sınıfları kullanılır. İşte bazı temel bilgiler:

new ve delete Anahtar Kelimeleri ile Dinamik Diziler:

Dinamik olarak eleman eklemek veya çıkarmak için, new anahtar kelimesini kullanarak yeni bir bellek alanı ayırabilir ve ardından delete anahtar kelimesini kullanarak bu bellek alanını serbest bırakabilirsiniz.

int* dynamicArray = new int[5]; // 5 elemanlı bir dinamik dizi oluştur

Daha sonra, bu dizinin elemanlarına erişebilirsiniz:

dynamicArray[0] = 10;
dynamicArray[1] = 20;
// ve böyle devam eder...

Dinamik olarak ayrılan belleği serbest bırakmak için delete kullanılır:

delete[] dynamicArray; // Belleği serbest bırak

std::vector Kullanarak Dinamik Diziler:

std::vector sınıfı, C++’ın standart kütüphanelerinden biridir ve dinamik dizileri yönetmek için daha güvenli ve kullanışlı bir yol sunar. Özellikle eleman ekleme veya çıkarma işlemleri için mükemmeldir:

#include <vector>

std::vector<int> dynamicArray; // Boş bir vektör oluştur

dynamicArray.push_back(10);  // Vektöre eleman eklemek
dynamicArray.push_back(20);

int element = dynamicArray[0]; // Elemanlara erişmek

dynamicArray.pop_back(); // Son elemanı çıkarmak

std::vector otomatik olarak bellek yönetimini ele alır, bu nedenle bellek sızıntısı veya bellek hataları konusunda endişelenmenize gerek kalmaz.

std::list Kullanarak Bağlı Liste:

Alternatif olarak, std::list sınıfı da eleman ekleme ve çıkarma işlemleri için kullanışlı bir seçenektir. Bağlı listeler, eleman eklemek veya çıkarmak için daha hızlıdır, ancak elemanlara doğrudan erişim daha yavaş olabilir.

#include <list>

std::list<int> dynamicList; // Boş bir bağlı liste oluştur

dynamicList.push_back(10);  // Listeye eleman eklemek
dynamicList.push_back(20);

int firstElement = dynamicList.front(); // İlk elemana erişmek

dynamicList.pop_back(); // Son elemanı çıkarmak

Hangi yapının kullanılacağı, projenizin gereksinimlerine ve performans beklentilerinize bağlı olarak değişebilir. std::vector, genellikle elemanlara hızlı erişim gerektiğinde tercih edilirken, std::list, eleman ekleme ve çıkarmaların sık olduğu durumlar için daha uygundur. Dinamik bellek yönetimi gereksinimleri olduğunda ise new ve delete kullanılabilir.