sözlük üzerinde stl uygulamaları – 2

Bu kez ingilizce sözlüğümüzde bulunan tüm palindrom sözcükleri buluyoruz:

Daha önceki çalışmamızda olduğu gibi önce dosyamızdaki tüm sözcükleri içeren svec isimli bir vector nesnesi oluşturduk. Palindrom sözcüklerimizi tutması amacıyla palset isimli bir kap nesnesi oluşturduk. Bir set kullandığımız için aynı sözcükten yalnızca bir tane kabımıza koyulacak. Setimizdeki sıralama ilşkisini belirleyen LenPred isimli bir de functor yapı tanımladık. set’in ikinci şablon tür parametresi olarak bu functor yapımız kullanıldu. Yapımızın işlev çağrı operatörü sözcüklerin karşılaştırılması işinde kullanılıyor. Daha uzun palindrom sözcüklerin daha önce yazdırılmasını amaçlıyoruz.
Palindromik sözcükleri setimize copy_if algoritması ile kopyaladık. Setimiz boş olduğundan kopyalamanın setimize eklemeye dönüştürülmesi için copy_if algroritmasının hedef adımlayıcı parametresine inserter (iterator adapter) işlevinin geri dönüş değerini gönderdik. Algoritmanın predicate parametresine palindrom testi yapan global ispal işlevinin adresini geçtik. Son olarak, copy algoritması ile  ostream_iterator sınıf nesneleri yardımıyla setimizdeki sözcükleri kullanıcı ekranına yazdırdık.

Palindrom sözcüklerimizin bazılarını buradan görebilirsiniz.

Necati Ergin

C ve Sistem Programcıları Derneğinde eğitmen olarak çalışıyor.

Bunlar da ilginizi çekebilir

sözlük üzerinde stl uygulamaları – 2” için 2 yorum

  1. Selamlar Necati Bey,
    plepa.com’un bir twitter hesabı var mı acaba?
    Yoksa bir twitter hesabınız olsa ve buradan c/c++ ile ilgili takipcilerinize faydalı olabilecek linkleri ve kendi yazılarınızın linklerini paylaşsanız biz de daha fazla insanın duyması için bu hesabı etrafımızdaki insanlara duyursak emeklerinizden daha fazla insan haberdar olmuş olur.

    iyi çalışmalar

    1. Çok teşekkürler, Kenan Bey. Kısa süre içinde plepa.com için bir Twitter hesabı açacağız.
      İyi çalışmalar.

Bir Cevap Yazın

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

Kod Eklemek İçin Okuyun