Standart Şablon Kütüphanesi

İlk olarak HP tarafından geliştirilmeye başlanan, daha sonra C++ standardına dahil edilen generic programlama modeliyle geliştirilmiş kütüphanedir. Daha çok STL şeklinde kısa ismiyle anılır.

STL, nesne yönelimli bir kütüphane değildir. Generic bir kütüphanedir. Bu özelliğiyle, genel amaçlı algoritmalar (sort, find, vs.) çok çeşitli container yapılarında kullanılabilirler.

C++ standardı, STL içindeki yapıların performans arayüzlerini ve performans kriterlerini belirler. Örneğin, vector sınıfından bir elemanın çağrılma işlemi sabit süre almalıdır. (Big-Oh gösterimiyle, O(1) olmalıdır.)

 Container Sınıfları 
C++ container sınıfları bazı ortak ve bazı kendine özgü fonksiyonlar (algoritmalar) bulunduran veri yapılarıdır. Kullanılabilmeleri için ana koda dahil edilmeleri gerekir. Bu da #include yöntemi ile gerçekleştirilir. Örneğin std::vector sınıfını ana koda dahil etmek için #include <vector> kullanılır. Aşağıda ana koda dahil edebileceğiniz container türleri yer almaktadır:

+ C++ Standart Kütüphanesindeki Konteyner Türleri Kategori  Konteyner  Açıklama Sıralı Konteynerler std::vector  Dinamik dizi. std::deque  Çift uçlu kuyruk. std::list  Çift yönlü bağlı liste. std::forward_list  Tek yönlü bağlı liste (C++11). İlişkili Konteynerler std::set  Anahtarlarına göre sıralı, benzersiz anahtarların koleksiyonu. std::multiset  Anahtarlarına göre sıralı, tekrarlanan anahtarların koleksiyonu. std::map  Anahtar-değer çiftlerinin koleksiyonu, anahtarlara göre sıralı. std::multimap  Anahtar-değer çiftlerinin koleksiyonu, anahtarlara göre sıralı (tekrarlanan anahtarları içerir). Sırasız İlişkili Konteynerler (C++11) std::unordered_set  Anahtarlarına göre karma tablolarla sıralanmış benzersiz anahtarların koleksiyonu. std::unordered_multiset  Anahtarlarına göre karma tablolarla sıralanmış tekrarlanan anahtarların koleksiyonu. std::unordered_map  Anahtar-değer çiftlerinin koleksiyonu, anahtarlar için karma tablolarla sıralanmış. std::unordered_multimap  Anahtar-değer çiftlerinin koleksiyonu, anahtarlar için karma tablolarla sıralanmış (tekrarlanan anahtarları içerir). Konteyner Adaptörleri std::stack  Yığınlama (LIFO) işlevselliği sağlayan bir konteyneri adapte eder. std::queue  Kuyruk (FIFO) işlevselliği sağlayan bir konteyneri adapte eder. std::priority_queue  Öncelikli kuyruk işlevselliği sağlayan bir konteyneri adapte eder. Dizi (C++11) std::array  Sabit boyutlu bir statik dizi. Tuple (C++11) std::tuple  Heterojen değerlerin sabit boyutlu koleksiyonu. Diğer std::bitset  Boolean değerlerin bir dizisi olarak temsil edilen bitlerin koleksiyonu.

 Algoritmalar 
Standard Şablon Kütüphanesindeki <algorithm> sınıfı birçok farklı container türünde kullanılabilen veya sadece bir container türüne özel fonksiyonlar bulundurur. Bu fonksiyonlardan yararlanabilmek için <algorithm> sınıfını ana koda dahil etmek gerekir. Bu da #include <algorithm> ifadesi ile gerçekleştirilir.

 Kaynakça 

Kategori:Yazılım
Kategori:C++
Kategori:Standard Template Library
Kategori:Containerler
Kategori:Algoritmalar