Haftalık C++ 9 – Map Ekleme Kontrolü Kod Parçası

Herkese merhabalar arkadaşlar,

Bu yazım ile birlikte “Kod Parçası” serimize bir başlangıç yapıyoruz. Bundan sonra, bu tarz çok daha kısa, öz ve daha kolay sindirilebilecek 🙂 kod parçalarını, Haftalık C++ yazıları altında sizler ile paylaşıyor olacağım. Daha önce yazdığım değerlendirme yazımda da bahsettiğim gibi bu tarz kısa kod paylaşımlarını aslında uzun süredir yapmayı planlıyordum (ve düzenli hale getirme). Bu kod parçaları:

  • ya çok bilinen bir problemi çözüyor olacak,
  • ya yaygın olarak gerçekleştirilen bir kullanıma yönelik olacak,
  • ya da C++ ile gelen yeni kabiliyetleri göstermeye yönelik olacak.

Bu yazıları “Snippet/Kod Parçası” olarak etiketleyeceğim ama halen Haftalık C++ serisi altında olacak.

İlk kod parçamız if-init, yapısal bağlama, ilklendirme listeleri ve auto kullanıma yönelik kombo bir kod parçası olacak 🙂

Bu arada bu konulara ilişkin daha detaylı bilgi almak için aşağıdaki yazılarıma muhakkak göz atınız lütfen 😉

Haftalık C++ 3 – if/switch init-statements

Haftalık C++ 4 –  Yapısal Bağlama

Modern C++ (1): nullptr, enum sınıfları, range-based döngüler, auto

Modern C++ (3): Uniform Initialization, override/final, default/delete, constexpr, etc.

Yukarıdaki yazılarımı okuduysanız, bu kabiliyetlerin konteynerler ile kullanıma ilişkin örnekler de verdiğimi görürsünüz. Fakat aşağıdaki vereceğim kod parçası, özellikle std::map konteynerine veri ekleme de kullanabileceğiniz oldukça kullanışlı bir kod parçası. Bu konteynere veri eklemek için std::map::insert() API’sini kullanabilirsiniz, bu durumda ilgili API size bir std::pair döner. Bunun ilk elemanı ya yeni eklenen elemana (eğer daha önce konteynerde yok ise) ya da mevcut elemanı işaret eden bir iterator’dür. İkincisi ise ekleme işleminin başarılı bir şekilde olup/olmadığını ifade eden bir boolean değerdir. Bu API’nin detaylarına sayfasından dan ulaşabilirsiniz. Şimdi, bu işin daha önce (modern C++’tan önce) ve şu an nasıl yapıldığına bakalım:

Benim şahsi kanaatim, ikinci, yani modern C++ kod parçası çok daha açık ve şık, bu sebeple size de bunu kullanmanızı önereceğim. Evet, hepsi bu kadar. Size kısa sürecek demiştim 🙂

Bu arada sırada son std::thread yazımın çevirisi var, sonrasında son bir std::thread yazımız ile o diziyi de bitirmeyi planlıyorum. Şu an ayrıca, Python kodu ile C++ uyumlu bir kod parçasının birlikte kullanılmasına yönelik bir proje üzerinde de çalışıyorum. Bu eminim bir çoğunuzun ilginizi çekecek, en kısa sürede bu konu ile ilgili de sizler ile yazılar paylaşacağım.

O zamana kadar, kendinize iyi bakın. Mutlu kodlamalar 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.