C++ TEMPLATES AND CONTAINERS EĞİTİMİ

Şablonlar ve STL konteynerlerinde ustalaşın

C++ şablonları, variadic ve concepts, vector/map/unordered_map, iterator, algoritmalar, özel konteyner tasarımı ve benchmark.

Bu eğitim, C++ şablon mekanizmasını ve STL konteynerlerini birlikte ele alır. Fonksiyon ve sınıf şablonları, özelleştirme, variadic şablonlar, SFINAE ve C++20 concepts işlenir; vector, deque, list, map ve unordered_map kapları, iterator kategorileri, algoritm…

3 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Modern C++ şablon mekanizması ve STL konteyner kütüphanesi

Bu eğitim, C++ şablon mekanizmasını ve STL konteynerlerini birlikte ele alır. Fonksiyon ve sınıf şablonları, özelleştirme, variadic şablonlar, SFINAE ve C++20 concepts işlenir; vector, deque, list, map ve unordered_map kapları, iterator kategorileri, algoritmalar ve lambda ifadeleriyle birleştirilir. Sonunda kendi şablon konteynerinizi iterator ve taşıma semantiğiyle yazar, Google Benchmark ve sanitizer ile doğrularsınız.

Süre ve Format

3 Gün. Her gün dört modül; Şablonlar ve Konteyner Temelleri, Özel Konteyner ve Algoritmalar, Sarmalayıcı, Performans ve Doğrulama konuları uygulamalı işlenir.

Seviye

Orta Seviye — Şablonlar ve STL konteynerlerini birlikte kullanma, özel konteyner tasarlama ve performans ölçme.

Öğrenme Metodu

Her konu derleyici (GCC/Clang) ve Compiler Explorer üzerinde canlı kodlanır; günlük alıştırmalar GoogleTest ile doğrulanır.

Neden Bu Eğitim?

⚡Verimli Kod

Konteyner seçimini karmaşıklık ve önbellek davranışına göre yaparak daha hızlı programlar yazarsınız.

🧩Modern C++

C++17/20 özellikleri olan şablon, lambda ve ranges ile daha kısa ve güvenli kod üretirsiniz.

🐞Az Hata

Iterator geçersizleşmesi ve bellek hatalarını sanitizer araçlarıyla erken yakalarsınız.

Anahtar Konular

c++ templatesc++ stlc++ konteynerlerstd::vectorunordered_mapc++20 conceptsvariadic templatesmodern c++stl algoritmalarıc++ eğitimi
“Şablon yazmak, derleyiciye bugünü değil yarının tüm tiplerini öğretmektir.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
C++ Temelleri

Değişken, fonksiyon, sınıf ve işaretçi kavramlarını bilmek gerekir.

2
Derleyici

GCC 11+, Clang 14+ veya MSVC 2022 ile C++17/20 derleyebilen bir ortam gerekir.

3
Geliştirme Aracı

CMake ve bir IDE (VS Code, CLion veya Visual Studio) kurulu olmalıdır.

4
Veri Yapıları

Dizi, bağlı liste ve hash tablosu gibi temel veri yapıları fikri faydalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı fonksiyon-sınıf şablonu yazıp sıralı ve ilişkisel konteynerleri doğru seçebilir.
Modül 1
Fonksiyon ve Sınıf Şablonları
  • template<typename T> söz dizimi, şablon argümanı çıkarımı ve CTAD (C++17)
  • Sınıf şablonları: üye fonksiyon tanımı, bağımlı tipler ve typename / template anahtar sözcükleri
  • Tam ve kısmi özelleştirme (full / partial specialization)
  • Variadic şablonlar, parametre paketi, fold expressions ve sizeof...
  • SFINAE, std::enable_if_t ve if constexpr ile derleme zamanı dallanma
  • C++20 concepts ve requires ifadeleriyle şablon kısıtları
Modül 2
Iterator'lar ve Geçersizleşme Kuralları
  • İterator kategorileri: input, forward, bidirectional, random access ve contiguous
  • begin/end, cbegin/cend, rbegin/rend ve range-based for döngüsü
  • std::advance, std::distance, std::next ve std::prev
  • İterator geçersizleşmesi: vector reserve / insert / erase sonrası davranış
  • Insert iterator'lar: back_inserter, front_inserter, inserter; stream iterator'lar
  • C++20 ranges: views::filter, views::transform ve lazy değerlendirme
Modül 3
Sıralı Konteynerler: vector, deque, list, array
  • std::vector: size / capacity, reserve, shrink_to_fit ve emplace_back ile push_back farkı
  • std::deque: iki uçtan ekleme, parçalı bellek yapısı ve rastgele erişim maliyeti
  • std::list ve std::forward_list: splice, merge, unique ve bellek yükü
  • std::array ve C dizisi karşılaştırması, std::span ile görünüm
  • insert / erase karmaşıklıkları (amortize O(1), O(n)) ve seçim tablosu
  • Önbellek yerelliği (cache locality) ve vector'ün pratikte neden hızlı olduğu
Modül 4
İlişkisel Konteynerler: map, set, unordered_map
  • std::set / std::map (kırmızı-siyah ağaç), multiset / multimap ve O(log n) işlemler
  • insert, emplace, try_emplace, insert_or_assign ve operator[] farkları
  • unordered_map / unordered_set: hash fonksiyonu, bucket, load_factor ve rehash
  • Özel karşılaştırıcı (comparator) ve özel hash'in std::hash özelleştirmesiyle yazılması
  • Node handle: extract() / merge() ve heterogeneous lookup (is_transparent)
  • map ile unordered_map seçimi: sıralı gezinme, bellek ve performans karşılaştırması
Günün hedefiKatılımcı şablon tabanlı kendi konteynerini yazıp algoritma ve taşıma semantiğiyle birleştirebilir.
Modül 1
Şablonlarla Özel Konteyner Tasarımı
  • Basit dizi tabanlı Stack<T> / Vector<T> sınıfı: kapasite büyütme stratejisi
  • Rule of Five: kopya/taşıma yapıcı ve atama operatörleri
  • Özel iterator sınıfı: begin(), end(), operator*, operator++ ve iterator_traits
  • std::allocator ve özel ayırıcı (allocator) kullanımı
  • Şablon kodunun başlık dosyalarında tutulması, explicit instantiation ve derleme süresi
  • Catch2 / GoogleTest ile şablon sınıfın birim testi
Modül 2
STL Algoritmaları
  • Arama ve sayma: find, find_if, count_if, binary_search, lower_bound / upper_bound
  • Sıralama: sort, stable_sort, partial_sort, nth_element ve özel karşılaştırıcılar
  • Dönüştürme: transform, for_each, accumulate, reduce ve inner_product
  • Silme: remove / remove_if + erase idiomu ve C++20 std::erase_if
  • Lambda ifadeleri: yakalama (capture) modları, mutable ve genel lambda
  • C++17 paralel algoritmalar (std::execution::par) ve C++20 std::ranges::sort
Modül 3
Konteyner Adaptörleri
  • std::stack, std::queue ve std::priority_queue arayüzleri ve alttaki konteyner (deque / vector)
  • priority_queue ile min-heap kurma ve özel karşılaştırıcı
  • make_heap, push_heap, pop_heap algoritmalarıyla elle heap yönetimi
  • Adaptör kullanarak BFS / DFS ve görev kuyruğu örnekleri
  • std::flat_map ve std::mdspan gibi yeni C++23 eklerine genel bakış
  • İş parçacığı güvenli kuyruk: mutex ve condition_variable ile sarmalama
Modül 4
Taşıma Semantiği ve Bellek Yönetimi
  • lvalue / rvalue, std::move ve std::forward (mükemmel iletim)
  • Taşıma yapıcı ve noexcept önemi: vector yeniden ayırmada taşıma ile kopya seçimi
  • std::unique_ptr, std::shared_ptr, std::weak_ptr ve konteynerde saklama
  • RAII ve istisna güvenliği (strong exception guarantee)
  • std::pmr polimorfik ayırıcılar ve monotonic_buffer_resource
  • AddressSanitizer / Valgrind ile bellek sızıntısı ve geçersiz iterator tespiti
Günün hedefiKatılımcı kodunu ölçüp test ederek üretim kalitesine getirebilir.
Modül 1
Sarmalayıcı Tipler: optional, variant, any, reference_wrapper
  • std::optional: değer yok durumu, value_or ve monadik işlemler (C++23 and_then)
  • std::variant ve std::visit ile güvenli birleşik tipler (overloaded pattern)
  • std::any, std::type_index ve tip silme (type erasure) mantığı
  • std::reference_wrapper, std::ref ve konteynerlerde referans saklama
  • std::pair, std::tuple, structured bindings ve std::tie
  • std::function ve std::bind sarmalayıcıları, maliyet ve alternatifleri
Modül 2
Performans Ölçümü ve Konteyner Seçimi
  • Big-O karmaşıklığı ile gerçek performans farkı: sabitler ve önbellek etkisi
  • Google Benchmark ile vector, list ve deque ekleme / gezme ölçümü
  • perf ve Valgrind callgrind ile sıcak nokta analizi
  • reserve, emplace ve move ile ayırma sayısını azaltma
  • Küçük tipler için flat (vector tabanlı) sıralı yapılar ve boost::flat_map fikri
  • Derleyici bayrakları (-O2, -O3, -march=native) ve inlining etkisi
Modül 3
CMake, Başlık Organizasyonu ve Derleme
  • CMakeLists.txt ile hedef (target) tabanlı yapı: add_executable, target_compile_features(cxx_std_20)
  • Header-only ve derlenmiş kütüphane ayrımı; include guard ve #pragma once
  • Şablon başlıklarında derleme süresi: extern template ve ön derlenmiş başlıklar
  • Derleyici uyarıları (-Wall -Wextra -Wpedantic) ve -fsanitize bayrakları
  • GCC, Clang ve MSVC arasındaki şablon hata mesajı farkları ve okuma teknikleri
  • Compiler Explorer (godbolt) ile üretilen assembly ve optimizasyon incelemesi
Modül 4
Hata Ayıklama ve Birim Test
  • GoogleTest / Catch2 ile konteyner davranışı için birim test yazımı
  • gdb ile STL konteyner içeriğini yazdırma (pretty-printer) ve breakpoint kullanımı
  • AddressSanitizer ve UBSan ile sınır aşımı, use-after-free ve tanımsız davranış tespiti
  • Iterator geçersizleşmesi ve at() ile operator[] farkı üzerinden sınır denetimi hatalarını yakalama
  • Valgrind memcheck çıktısını okuma ve sızıntı kaynağını bulma
  • Kod incelemesi ve clang-tidy ile STL kullanım kurallarının otomatik denetimi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Şablon Yazımı

Fonksiyon ve sınıf şablonlarını, özelleştirmeleri ve variadic yapıları güvenle yazabilirsiniz.

✅
Sıralı Konteynerler

vector, deque, list ve array arasında karmaşıklık ve bellek davranışına göre doğru seçim yapabilirsiniz.

✅
İlişkisel Konteynerler

map, set ve unordered_* kapları ile anahtar-değer verilerini doğru karmaşıklıkla yönetebilirsiniz.

✅
STL Algoritmaları

STL algoritmalarını lambda ifadeleriyle birleştirerek döngü yazmadan sağlam çözümler üretebilirsiniz.

✅
Adaptör Kapları

stack, queue ve priority_queue adaptörlerini altta yatan konteyner seçimiyle kullanabilirsiniz.

✅
Sarmalayıcılar

std::optional, variant ve reference_wrapper gibi sarmalayıcıları konteynerlerle güvenle birlikte kullanabilirsiniz.

✅
Performans Analizi

Google Benchmark ve profil araçlarıyla konteyner seçimini ölçüme dayalı yapabilirsiniz.

✅
Hata Ayıklama

GoogleTest, gdb ve sanitizer araçlarıyla konteyner kodundaki hataları hızla bulabilirsiniz.

Kimler İçin Uygundur?

  • C++ temellerini bilen
  • modern C++
  • kütüphane ve performans odaklı kod yazmak isteyen geliştiriciler ve öğrenciler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
C++ temellerini bilen, modern C++ ile kütüphane ve performans odaklı kod yazmak isteyen geliştiriciler ve öğrenciler için uygundur.
Eğitime katılmak için ön koşul ve ortam gereksinimi nedir?
Değişken, fonksiyon, sınıf ve işaretçi kavramlarını bilmek gerekir. GCC 11+, Clang 14+ veya MSVC 2022 ile C++17/20 derleyebilen bir ortam gerekir.
Hangi C++ standardı kullanılıyor?
C++17 temel alınır, C++20 concepts ve ranges konuları ayrıca gösterilir.
Windows'ta çalışılabilir mi?
Evet; MSVC, MinGW ya da WSL2 üzerinde GCC/Clang ile laboratuvarlar yapılabilir.
Eğitim sonunda sertifika alabilir miyim?
Programı tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. C++ Templates and Containers Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Docker ve KonteynerleştirmeGNS Gelişmiş: Otomasyon, Docker ve Bulut Entegrasyonu Eğitimi
DevOps ve Konteyner Eğitimleri

GNS Gelişmiş: Otomasyon, Docker ve Bulut Entegrasyonu Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

GNS Gelişmiş: Otomasyon, Docker ve Bulut Entegrasyonu: gns3 otomasyon, gns3 docker ve uygulamalı laboratuvarlar. Digital Vizyon Akademi Katılım ve Başarı Sertif

Detayları Gör →
Docker ve KonteynerleştirmeGoogle Cloud Digital Leader: Containers and Serverless Services Eğitimi
DevOps ve Konteyner Eğitimleri

Google Cloud Digital Leader: Containers and Serverless Services Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Google Cloud Digital Leader: Containers and Serverless Services: google cloud digital leader ve uygulamalı laboratuvarlar. DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
Docker ve KonteynerleştirmeGoogle Professional Cloud Architect: Using Google Container Orchestration Eğitimi
DevOps ve Konteyner Eğitimleri

Google Professional Cloud Architect: Using Google Container Orchestration Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Google Professional Cloud Architect: google professional cloud architect, gke, kubernetes orkestrasyon ve uygulamalı laboratuvarlar. DVA Katılım ve Başarı Serti

Detayları Gör →
Docker ve KonteynerleştirmeIntroducing Docker Eğitimi
DevOps ve Konteyner Eğitimleri

Introducing Docker Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Introducing Docker: introducing docker, docker tanışma, docker giriş ve uygulamalı laboratuvarlar. Digital Vizyon Akademi Katılım ve Başarı Sertifikası ile.

Detayları Gör →
Docker ve KonteynerleştirmeIntroduction to Algorithms & Standard Containers Eğitimi
DevOps ve Konteyner Eğitimleri

Introduction to Algorithms & Standard Containers Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Introduction to Algorithms & Standard Containers: Algoritma analizi, STL konteynerleri, iterator'lar ve standart algoritmalar. 2 gün uygulamalı eğitim.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn