crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
STL Nedir? Yazılımcının Hazır Cephanesi
STL, Generic (Tipe bağlı olmayan) programlama temeli üzerine kuruludur. Bu kütüphane sayesinde, bir veri yapısını (örneğin bir listeyi) içine ister int, ister kendi oluşturduğunuz bir Nesne koyarak kullanabilirsiniz.
1. STL'in Üç Temel Taşı
STL'i anlamak için şu üç kavramı bilmek gerekir:
Containers (Konteynerler): Verileri depolayan yapılar (Dizi, Liste, Yığın vb.).
Iterators (İteratörler): Konteyner içindeki elemanlar üzerinde gezmenizi sağlayan "akıllı işaretçiler".
Algorithms (Algoritmalar): Veriler üzerinde işlem yapan hazır fonksiyonlar (Sıralama, Arama, Sayma vb.).
2. En Sık Kullanılan STL Konteynerleri
Konteynerler veriyi bellekte nasıl tutacağınıza karar verir:
| Konteyner | Açıklama | Kullanım Durumu |
|---|---|---|
| std::vector | Dinamik dizi. | Boyutu değişebilen sıralı listeler için (En popüler). |
| std::list | Çift yönlü bağlı liste. | Araya eleman ekleme/çıkarma çok fazlaysa. |
| std::map | Anahtar-Değer (Key-Value) çifti. | Sözlük mantığıyla veri tutmak için. |
| std::stack | Yığın (LIFO). | Son giren ilk çıkar mantığı gerektiğinde. |
3. Algoritmaların Gücü: Tek Satırda Karmaşık İşlemler
STL algoritmalara, <algorithm> kütüphanesini ekleyerek ulaşabilirsiniz. Elle for döngüsü yazmak yerine bu hazır fonksiyonları kullanmak hem daha hızlı hem de daha güvenlidir.
C++:
#include <vector>
#include <algorithm>
#include <iostream>
int main() {
std::vector<int> sayilar = {5, 2, 9, 1, 5, 6};
// Veriyi sırala (Hızlı Sıralama / IntroSort)
std::sort(sayilar.begin(), sayilar.end());
// Bir değeri ara
if (std::binary_search(sayilar.begin(), sayilar.end(), 9)) {
std::cout << "9 rakami bulundu!" << std::endl;
}
return 0;
}
4. Iterators (İteratörler): Köprü Görevi
İteratörler, algoritmaların konteynerler ile konuşmasını sağlar. Bir vector ile list bellekte çok farklı tutulsa da, bir iteratör her ikisinde de aynı şekilde (++ ile) ilerleyebilir.
Sonuç
STL kullanmak, modern C++ geliştiricisi olmanın ilk adımıdır. Kendi veri yapılarınızı yazmak harika bir egzersiz olsa da, profesyonel projelerde STL'in optimize edilmiş ve milyonlarca kez test edilmiş yapılarını kullanmak her zaman daha mantıklıdır.