Standart Şablon Kütüphanesi - Vikipedi
İ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ı[1]
[değiştir | kaynağı değiştir]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:
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[2]
[değiştir | kaynağı değiştir]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
[değiştir | kaynağı değiştir]- ^ "Containers library - cppreference.com". en.cppreference.com. 26 Haziran 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Temmuz 2021.
- ^ "Algorithms library - cppreference.com". en.cppreference.com. 26 Haziran 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Temmuz 2021.