Forum: Ders Arası RSS
map<> ın D deki karşılığı
Avatar
huseyin #1
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: map<> ın D deki karşılığı
struct Scoping{
  map<string, SimpleDataInfo> SimpleDataTypes;
  map<string, ArrayDataInfo>  ArrayDataTypes;
  map<string, TypeDataInfo>   Types;
  map<string, UDTDataInfo>    UDTDataTypes;
  map<string, SubFunctionInfo>SubFunctions;
};
Yukarıdaki yapı herkesinde gördüğü gibi bir c++ yapısı ancak ben bu map<> ı D ye nasıl uyarlayabilirim karşılığı nedir ?
Huseyin
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
C++'ın map'i bir sıralı ağaçtır. Tam olarak da Phobos'taki RedBlackTree'ye karşılık gelir:

  http://dlang.org/phobos/std_container.html#.RedBlackTree

Ne yazık ki o modülün kullanımı biraz gariptir. Umarım işine yarar.

Ama ona gitmeden önce gerçekten de map'in eşdeğerine gerek olup olmadığına bakmak gerek. Çoğu insan map'i D'nin eşleme tabloları (associative array) gibi kullandığı için map'e çoğu durumda gerek yok.

Aslında çoğu insanın map'i kullanmasının nedeni, hash table veri yapısının C++'ın standart kütüphanesine şanssızlık sonucu girememesidir. Girebilseydi çoğu durumda map değil, o kullanılırdı. (Hash table, C++'a sonradan std::unordered_set (ve unordered_map) olarak geldi.)

Ali
Avatar
huseyin #3
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet sanırım burda yapmaya çalıştıkları eşleme tablolarını taklit etmek olmuş. Bunların yerine eşleme tablosu veri yapısını kullansam sanırım yeterli olacak. Peki bir soru daha soracağım vector<> ne işe yarar?
Teşekkür Ederim
Huseyin
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
huseyin325325:
Bunların yerine eşleme tablosu veri yapısını kullansam sanırım yeterli olacak.

Aralarındaki farkı aklında tuttuğun sürece: elemanlar eşleme tablolarında sıralı değildir, map'te sıralıdır.

Peki bir soru daha soracağım vector<> ne işe yarar?

Gerektikçe otomatik olarak büyüyen dizi gerçekleştirmesi. D'nin dizileri ona gerek bırakmıyor.

Ali
Avatar
huseyin #5
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Çok teşekkür ederim hocam. D  dizileri ve stringleri yönünden gerçekten güçlü bir dil.
Huseyin
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 03:52:19 (UTC -08:00)