მონაცემთა სტრუქტურა MAP

MAP არის კონტეინერი, რომელიც ინახავს ელემენტებს ორი მნიშვნელობის მიხევით. ესენია : გასაღები(Key Value) და ე.წ. მაპის მნიშვნელობით(mapped value). ამ ორი მნიშვნელობის ტიპები შეიძება განსხვავდებოდეს. მაგალითისთვის მოვიტანოთ ტელეფონების წიგნი. პირველი მნიშვნელობა შეიცავდეს გვარს , ხოლო მეორე მნიშვნელობა შეიცავდეს გვარის შესაბამის ტელეფონის ნომერს. MAP-ს აქვს ფუნქცია .size() , რომელიც გვიბრუნებს MAP-ის ზომას. MAP-ის უპირატესობა ვექტორთან და მასივთან შედარებით არის ის, რომ თუ ჩვენ გვჭირდება ათვლა დავიწყოთ მე-100 ინდექსიდან, ამისთვის არაა საჭირო პირველი 100 ადგილი ნოლებით შევავსოთ და ამითი დავიკავოთ ზედმეტი ოპერატიული მეხსიერება. MAP-ი არის კონტეინერი, რომელიც მუშაობს იტერატორებთან, ანუ ჩვენ ამ კონტეინერის შემოვლა შეგვიძლია იტერატორებით.მაგალითად ჩვენ თუ გვინდა გამოვიტანოთ ეკრანზე MAP-ის ორივე მონაცემი უნდა დავწეროთ შემდეგი ბრძანება :
cout<<(*map).first << “ : “ <<(*map).second<<endl;

მეტი თვალსაჩინოებისთვის განვიხილოთ პატარა პროგრამა:

 როგორც აღვნიშნეთ, MAP-ი მუშაობს იტერატორებთან და ამიტომ საჭიროა შესაბამისი iterator ბიბლიოთეკის ჩართვა, ასევე საჭიროა
ჩავრთოთ map ბიბლიოთეკა. ძირითად პროგრამაში გავაკეთოთ განაცხადი MAP-ზე, რომლის პირველი პარამეტრი იქნება სტრიქონის (string) ტიპის, ხოლო მეორე – მთელი რიცხვის (int) ტიპის. ჩვენს MAP-ს დავარქვათ telephone_book. ვთქვათ ეს არის ტელეფონების წიგნი, პირველი პარამეტრი შეიცავდეს გვარს, ხოლო მერე პარამეტრი ტელეფონის ნომერს. ამიტომ თვალსაჩინოებისთვის შევქმნათ მხოლოდ ორი ელემენტი და შემდეგ პროგრამას ეკრანზე დავაბეჭდინოთ ამ ორი ელემენტის (telephone_book-ის) ორივე პარამეტრი. რადგან MAP-ი მუშაობს იტერატორებზე, ამიტომ ციკლში ვაკეთებთ კონტეინერის შემოსავლელ იტერატორ tb-ზე განაცხადს და მას საწყისად ვანიჭებთ ამ კონტეინერის პირველი ელემენტის მისამართს (იტერატორი აღნიშნავს კონტეინერის პირველი ელემენტის მისამართს), ხოლო შეჩერების პირობად ვუდებთ კონტეინერის მისამართის დასასრულს, ანუ როცა tb იტერატორი გახდება კონტეინერის მისამართის დასასრული , ციკლი შეწყდება. ხოლო ამ ციკლში ვასრულებთ ეკრანზე თითოეული telephone_book-ის ორივე პატამეტრის ეკრანზე გამოტანას. * სიმბოლო ნიშნავს მნიშვნელობის ამოღებას. ანუ გამოიტანს , კოკრეტულს მისამართზე არსებული ელემენტის მნიშვნელობას.

Leave a Reply / უპასუხე

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / შეცვლა )

Twitter picture

You are commenting using your Twitter account. Log Out / შეცვლა )

Facebook photo

You are commenting using your Facebook account. Log Out / შეცვლა )

Google+ photo

You are commenting using your Google+ account. Log Out / შეცვლა )

Connecting to %s