basic_string sınıf şablonuna genel bir bakış

string başlık dosyasında yer alan, yazı işlemlerinde kullanılacak sınıfların oluşturulması amaçlı basic_string  sınıf şablonu standart kütüphanemizin ve STL‘nin en önemli öğelerinden biri. Önce bu sınıf şablonunun standart kütüphanedeki bildirimine bir göz atalım:

Yukarıdaki bildirimde CharType ismiyle belirtilen şablonumuzun birinci tür parametresi yazının karakterlerinin türü olarak kullanılıyor. Bir yazı bu türden karakterlerin oluşturduğu bir vector gibi düşünülebilir. Bu tür char türü ise yazılarımızın karakterleri char türünden bu tür wchar_t türü ise yazımızın karakterleri wchar_t türünden olacak. Birinci şablon tür parametresi olarak dizi olmayan herhangi bir POD türü kullanılabilir.

Yine bildirimde TraitsType ismiyle belirtilen ikinci şablon tür parametremiz yazımızın karakterlerine ilişkin atama, karşılaştırma, kopyalama gibi işlemlerin nasıl yapılacağını belirleyen tür. Bu şablon tür parametresi için varsayılan tür argumanı olarak yine standart kütüphanenin char_traits sınıf şablonunun CharType açılımı seçilmiş. Yani örneğin birinci şablon tür parametresi olarak char türünü seçer ikinci parametre olarak varsayıan tür parameresini kullanırsak std::char_traits<char> açılımını kullanmış oluyoruz.

Standart kütüphane bu sınıf şablonundan 4 ayrı sınıf şablonunu özelleştirerek bunlara birer eş isim vermiş:

Bu şu anlama geliyor: Yazımızın karakter türünün char, wchar_t, char16_t ya da char32_t türü olmasını istersek bu sınıflara ilişkin şablon kodlarımız standart kütüphane ile hazır geliyor. Bu sınıfların arayüzleri arasında herhangi bir farklılık yok.

demekle

demek arasında bir fark yok.

Necati Ergin

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

Bunlar da ilginizi çekebilir

basic_string sınıf şablonuna genel bir bakış” için 2 yorum

  1. Hocam selamlar,
    Stringstream ifadelerle stringler arasındaki farkla ilgili bir yazı yazarsanız çok mutlu oluruz. Ne zaman stringstream kullanılmalı to_string yerine

    ifadeyi kullansak ne değişir? Etrafta bununla ilgili bilgi sahibi yazılımcı bulmak zor. Bizi aydınlatırsanız seviniriz.

Bir Cevap Yazın

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

Kod Eklemek İçin Okuyun