Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

MAP SINIFI. MAP C + + da Haritalar değer çiftlerini benzersiz anahtar içeren birleşmeli konteyner olarak sıralar. Haritalar onların anahtarlarına göre.

Benzer bir sunumlar


... konulu sunumlar: "MAP SINIFI. MAP C + + da Haritalar değer çiftlerini benzersiz anahtar içeren birleşmeli konteyner olarak sıralar. Haritalar onların anahtarlarına göre."— Sunum transkripti:

1 MAP SINIFI

2 MAP C + + da Haritalar değer çiftlerini benzersiz anahtar içeren birleşmeli konteyner olarak sıralar. Haritalar onların anahtarlarına göre sıralanır.

3 Map Constructors & Destructors Haritalar;varsayılan yöntemleri, kopyalar ve tahsis eder.

4 Map operators Karşılaştırma = harita elemanlarını atamak

5 int main () { map birinci; map ikinci; birinci['x']=8; birinci['y']=16; birinci['z']=32; birinci['k']=64; ikinci=birinci; // ikinci 4 oldu birinci=map (); // ilk anda bostur cout << "Birincinin uzunlugu: " << int (birinci.size()) << endl; cout << "ikincinin uzunlugu : " << int (ikinci.size()) << endl; return 0; }

6 Map typedefs Bir harita typedefs

7 begin •Haritanın başlangıç elemanına dönen bir fonksiyondur.

8 end •Bir haritanın sadece son elemanını döndüren fonksiyondur.

9 int main () { map mb; map ::iterator bu; mb['b'] = 100; mb['a'] = 200; mb['c'] = 300; // show content: for ( bu=mb.begin() ; bu != mb.end(); bu++ ) cout " << (*bu).second << endl; return 0; }

10 clear •Haritadaki tüm unsurlarını kaldırır

11 int main () { map haritam; map ::iterator it; haritam['x']=100; haritam['y']=200; haritam['z']=300; cout << "haritamin elemanlari:\n"; for ( it=haritam.begin() ; it != haritam.end(); it++ ) cout " << (*it).second << endl; haritam.clear(); cout << "haritamin elemanlari:\n"; for ( it=haritam.begin() ; it != haritam.end(); it++ ) cout " << (*it).second << endl; return 0; }

12 count •Belirli bir anahtarla eşleşen elemanların sayısını verir

13 int main () { map haritam; char c; haritam ['a']=101; haritam ['c']=202; haritam ['f']=303; for (c='a'; c<'h'; c++) { cout << c; if (haritam.count(c)>0) cout << " haritamin elemanidir.\n"; else cout << " haritamin elemani degildir.\n"; } return 0; }

14 empty •Harita içeriğinin boş ya da dolu olma durumunu kontrol eden fonksiyondur.

15 int main () { map haritam; haritam['a']=10; haritam['b']=20; haritam['c']=50; while (!haritam.empty()) { cout first "; cout second << endl; haritam.erase(haritam.begin()); } return 0; }

16 equal_range •Sadece geçmiş son öğeleri ve belirli bir anahtarla eşleşen ilk tekrarlayıcılara döner

17 int main () { map haritam; pair ::iterator,map ::iterator> ret; haritam['a']=10; haritam['b']=5; haritam['c']=50; ret = haritam.equal_range('b'); cout << "en alt nokta "; cout first " second << endl; cout << "en ust nokta "; cout first " second << endl; return 0; }

18 erase •Map sınıfında silme yapmak için erase() fonksiyonu kullanılır.

19 int main () { map haritam; map ::iterator bu; haritam['a']=10; haritam['b']=20; haritam['c']=30; haritam['d']=40; haritam['e']=50; haritam['f']=60; bu=haritam.find('b'); haritam.erase (bu); // b yi siler haritam.erase ('c'); // c yi siler bu=haritam.find ('e'); haritam.erase ( bu, haritam.end() ); // e yi siler for ( bu=haritam.begin() ; bu != haritam.end(); bu++ ) cout " << (*bu).second << endl; return 0;}

20 find • İstenilen elemanı bulmak için kullanılan fonksiyondur.

21 int main () { map haritam; map ::iterator it; haritam['a']=50; haritam['b']=100; haritam['c']=150; haritam['d']=200; it=haritam.find('b'); //bul ve sil satırları haritam.erase (it); haritam.erase (haritam.find('d')); cout << "haritam da kalan elemanlar:" << endl; cout " second << endl; return 0; }

22 insert • Bir haritaya öğeler eklemek için kullanılır

23 int main () { map haritam; map ::iterator bu; pair ::iterator,bool> ret; // insert fonksiyonu sürümü (tek parametre) : haritam.insert ( pair ('a',100) ); haritam.insert ( pair ('z',200) ); ret=haritam.insert (pair ('z',500) ); if (ret.second==false) { cout << "eleman z zaten "; cout second <<"\n"<< endl; }

24 //ikinci insert fonksiyonu sürümü (ipucu konumu ile): bu=haritam.begin(); haritam.insert (bu, pair ('b',300)); // max etkinlik ekleme haritam.insert (bu, pair ('c',400)); //max etkinlik yok // Üçüncü insert fonksiyonu sürümü (aralık ekleme): map anothermap; anothermap.insert(haritam.begin(),haritam.find('c')); cout << "haritamin icerigi:\n"; for ( bu=haritam.begin() ; bu != haritam.end(); bu++ ) cout " << (*bu).second << endl; cout << "baska bir harita icerigi:\n"; for ( bu=anothermap.begin() ; bu != anothermap.end(); bu++ ) cout " << (*bu).second << endl; return 0; }

25 key_comp • T uşları karşılaştırıp döndüren fonksiyondur

26 int main () { map haritam; map ::key_compare mycomp; map ::iterator bu; char ust; mycomp = haritam.key_comp(); haritam['a']=100; haritam['b']=200; haritam['c']=300; cout << "haritamin icerigi:\n"; ust=haritam.rbegin()->first; // son elemaın anahtar degeri bu=haritam.begin(); do { cout " << (*bu).second << endl; } while ( mycomp((*bu++).first, ust) ); cout << endl; return 0;}

27 lower_bound • find() fonksiyonuna benzer, ancak lower_bound() aranılan elemandan bir önceki değeri verir.

28 int main () { map haritam; map ::iterator bu,alt,ust; haritam['a']=20; haritam['b']=40; haritam['c']=60; haritam['d']=80; haritam['e']=100; alt=haritam.lower_bound ('b'); // alt nokta b ust=haritam.upper_bound ('d'); // ust nokta d değil haritam.erase(alt,ust); // alt ust silindi for ( bu=haritam.begin() ; bu != haritam.end(); bu++ ) cout " << (*bu).second << endl; return 0; }

29 max_size •Elemanların azami dönme sayısını tutar

30 int main () { int i; map benim; if (benim.max_size()>1000) { for (i=0; i<1000; i++) benim[i]=0; cout << "ogem 1000 den buyuktur.\n"; } else cout << "ogem 1000den kucuktur.\n"; return 0; }

31 rbegin •Harita sonuna döndüren bir reverse_iterator

32 int main () { map haritam; map ::reverse_iterator o; haritam['x'] = 100; haritam['y'] = 200; haritam['z'] = 300; for ( o=haritam.rbegin() ; o != haritam.rend(); o++ ) cout first " second << endl; return 0; }

33 rend •Harita başına dönen bir reverse_iterator

34 int main () { map haritam; map ::reverse_iterator rit; haritam['x'] = 100; haritam['y'] = 200; haritam['z'] = 300; for ( rit=haritam.rbegin() ; rit != haritam.rend(); rit++ ) cout first " second << endl; return 0; }

35 size •Harita öğelerinin sayısını verir

36 int main () { map haritam; haritam['a']=101; haritam['b']=202; haritam['c']=30; haritam['d']=101; haritam['e']=232; haritam['f']=345; cout << "haritam.size() : " << (int) haritam.size() << endl; return 0; }

37 swap •Başka bir harita içeriğini takas eder

38 int main () { map senin; map benim; map ::iterator bu; senin['x']=100; senin['y']=200; benim['a']=11; benim['b']=22; benim['c']=33; senin.swap(benim); cout << "senin elemanlarin:\n"; for ( bu=senin.begin() ; bu != senin.end(); bu++ ) cout " << (*bu).second << endl; cout << "benim elemanlarim:\n"; for ( bu=benim.begin() ; bu != benim.end(); bu++ ) cout " << (*bu).second << endl; return 0;}

39 upper_bound •find() fonksiyonuna benzer, ancak upper_bound() aranılan elemandan bir sonraki değeri verir.

40 int main () { map haritam; map ::iterator bu,alt,ust; haritam['a']=20; haritam['b']=40; haritam['c']=60; haritam['d']=80; haritam['e']=100; alt=haritam.lower_bound ('b'); // alt nokta b ust=haritam.upper_bound ('d'); // ust nokta d haritam.erase(alt,ust); // alt ve ust noktaları siler for ( bu=haritam.begin() ; bu != haritam.end(); bu++ ) cout " << (*bu).second << endl; return 0; }

41 value_comp •Değerleri karşılaştırır ve döndürür fonksiyonu

42 int main () { map haritam; map ::iterator bu; pair buyuk; haritam['x']=1001; haritam['y']=2002; haritam['z']=3003; cout << "haritamin icerigi:\n"; buyuk=*haritam.rbegin(); bu=haritam.begin(); do { cout " << (*bu).second << endl; } while ( haritam.value_comp()(*bu++, buyuk) ); return 0; }


"MAP SINIFI. MAP C + + da Haritalar değer çiftlerini benzersiz anahtar içeren birleşmeli konteyner olarak sıralar. Haritalar onların anahtarlarına göre." indir ppt

Benzer bir sunumlar


Google Reklamları