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

Elimizde ingilizce’deki tüm sözcükleri içeren bir ASCII metin dosyası var. Dosyanın ismi dict.txt. Dosyamızın her satırında bir sözcük yer alıyor ve toplamda 354.935 sözcüğümüz var. Bu çalışmamızın amacı ingilizce sözlükte yer alan ilginç sözcükleri bulmak. Bu dosyayı yakında bu blogdan indirebileceksiniz.
Birinci çalışmamız ingilizcedeki en uzun 100 sözcüğü bulmak olsun:

Kod hakkında biraz açıklama yapalım: svec isimli vector nesnesini dosyamızdaki tüm sözcükleri içerecek şekilde hayata başlatmak için vector sınıfının aralık (range) parametreli kurucu işlevini kullandık. Kaynak aralık olarak dosyamızı kullanabilmek için istream_iterator sınıfı bize yardımcı oldu. Aralık sonu adımlayıcısı olarak istream_iterator sınıfının varsayılan kurucu işleviyle oluşturulmuş bir nesne kullanılması gerektiğini hatırlayalım.
En uzun 100 sözcüğü bulmak için vector‘un tamamını sıralamaya gerek yok, değil mi? partial_sort algoritması ile ilk 100 sözcüğü elde edebiliriz. Sıralamanın uzun sözcükten kısa sözcüğe doğru yapılabilmesi için, algoritmanın bir predicate isteyen yüklemesine bir lambda ifadesi geçtik.
Bulduğumuz sözcükler şunlar :
Share

Necati Ergin

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

Bunlar da ilginizi çekebilir

Kod Eklemek İçin Okuyun
Eklemek istediğiniz kodları lütfen aşağıdaki “pre” kodları arasında yazınız.
<pre class="lang:c++ decode:true ">
--yazacağınız kodlar--
</pre>
(buradan kopyalayarak kullanabilirsiniz)